Si vous exprimez votre commande sans guillemets simples, vous pouvez la mettre entre guillemets simples et l'exécuter via un shell intermédiaire.
Pour l'exécuter en tant que root:
echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock
Ecrivez la commande d'une manière différente qui n'utilise pas ':
echo clock_hctosys=\"YES\" >> /etc/conf.d/hwclock
Puis invoquer sudo sh -c …:
sudo sh -c 'echo clock_hctosys=\"YES\" >> /etc/conf.d/hwclock'
Sinon, pour écrire la sortie dans un fichier que seule la racine peut écrire, appelez-la sudo tee. Passez l' -aoption à teeajouter au fichier de destination, sinon le fichier est tronqué.
echo 'clock_hctosys="YES"' | sudo tee -a /etc/conf.d/hwclock >/dev/null
Pour les modifications des fichiers plus complexes, vous pouvez appeler sudo sed, sudo ed, sudo perl, ...
Sinon, utilisez un éditeur correct et appelez-le sudo. Dans Emacs, ouvrez /sudo:/etc/conf.d/hwclock. Dans Vim, appelez :w !sudo tee %pour écrire dans le fichier ouvert en tant que root ou utilisez le plugin sudo.vim . Ou aller du sudo et appeler sudoedit /etc/conf.d/hwclock.
Ou vous pouvez céder du côté obscur et lancer un shell en tant que root.
$ sudo -i
# echo 'clock_hctosys="YES"' >> /etc/conf.d/hwclock
teecommandes sont exécutées en tant que root, et non la commande principale, qui pourrait être complexe et sujette à des erreurs de comportement. (pas le cas deecho)