Se você expressar seu comando sem aspas simples, poderá colocá-lo entre aspas simples e executá-lo por meio de um shell intermediário.
Para executar isso como root:
echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock
Escreva o comando de uma maneira diferente que não use '
:
echo clock_hctosys=\"YES\" >> /etc/conf.d/hwclock
Em seguida, invoque sudo sh -c …
:
sudo sh -c 'echo clock_hctosys=\"YES\" >> /etc/conf.d/hwclock'
Como alternativa, para gravar a saída em um arquivo no qual somente o root pode gravar, chame sudo tee
. Passe a -a
opção para tee
anexar ao arquivo de destino, caso contrário, o arquivo será truncado.
echo 'clock_hctosys="YES"' | sudo tee -a /etc/conf.d/hwclock >/dev/null
Para mais modificações de arquivo complexos, você pode chamar sudo sed
, sudo ed
, sudo perl
, ...
Como alternativa, use um editor decente e faça com que ele chame sudo. No Emacs, abra /sudo:/etc/conf.d/hwclock
. No Vim, chame :w !sudo tee %
para gravar no arquivo aberto como root ou use o plug-in sudo.vim . Ou vá do final do sudo e ligue sudoedit /etc/conf.d/hwclock
.
Ou você pode ceder ao lado sombrio e executar um shell como raiz.
$ sudo -i
# echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock
tee
comandos são executados como raiz, não o comando principal, que pode ser complexo e propenso a comportamentos inadequados. (não é o caso deecho
)