Se esprimi il tuo comando senza virgolette singole, puoi inserirlo in virgolette singole ed eseguirlo tramite una shell intermedia.
Per eseguire questo come root:
echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock
Scrivi il comando in un modo diverso che non utilizza ':
echo clock_hctosys=\"YES\" >> /etc/conf.d/hwclock
Quindi invoca sudo sh -c …:
sudo sh -c 'echo clock_hctosys=\"YES\" >> /etc/conf.d/hwclock'
In alternativa, per scrivere l'output in un file su cui solo root può scrivere, chiama sudo tee. Passare l' -aopzione da teeaggiungere al file di destinazione, altrimenti il file viene troncato.
echo 'clock_hctosys="YES"' | sudo tee -a /etc/conf.d/hwclock >/dev/null
Per ulteriori modifiche di file complessi, è possibile chiamare sudo sed, sudo ed, sudo perl, ...
In alternativa, usa un editor decente e chiamalo sudo. In Emacs, apri /sudo:/etc/conf.d/hwclock. In Vim, chiama :w !sudo tee %per scrivere sul file aperto come root o usa il plugin sudo.vim . Oppure vai dalla fine sudo e chiama sudoedit /etc/conf.d/hwclock.
Oppure puoi cedere al lato oscuro ed eseguire una shell come root.
$ sudo -i
# echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock
teecomandi vengono eseguiti come root, non il comando principale che potrebbe essere complesso e soggetto a comportamenti scorretti. (non nel caso diecho)