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' -a
opzione da tee
aggiungere 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
tee
comandi vengono eseguiti come root, non il comando principale che potrebbe essere complesso e soggetto a comportamenti scorretti. (non nel caso diecho
)