Si expresa su comando sin comillas simples, puede ponerlo dentro de comillas simples y ejecutarlo a través de un shell intermedio.
Para ejecutar esto como root:
echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock
Escriba el comando de una manera diferente que no use '
:
echo clock_hctosys=\"YES\" >> /etc/conf.d/hwclock
Luego invoque sudo sh -c …
:
sudo sh -c 'echo clock_hctosys=\"YES\" >> /etc/conf.d/hwclock'
Alternativamente, para escribir la salida en un archivo en el que solo la raíz puede escribir, llame sudo tee
. Pase la -a
opción a tee
anexar al archivo de destino; de lo contrario, el archivo se truncará.
echo 'clock_hctosys="YES"' | sudo tee -a /etc/conf.d/hwclock >/dev/null
Para las modificaciones de archivos más complejos, puede llamar sudo sed
, sudo ed
, sudo perl
, ...
Alternativamente, use un editor decente y haga que llame a sudo. En Emacs, abierto /sudo:/etc/conf.d/hwclock
. En Vim, llame :w !sudo tee %
para escribir en el archivo abierto como root, o use el complemento sudo.vim . O ve desde el extremo del sudo y llama sudoedit /etc/conf.d/hwclock
.
O puede ceder al lado oscuro y ejecutar un shell como root.
$ sudo -i
# echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock
tee
comandos se ejecutan como root, no el comando principal, que podría ser complejo y propenso a un mal comportamiento. (no es el caso deecho
)