Použijte tee -a
(nebo tee --append
) s sudo
tee - read from standard input and write to standard output and files
[...]
-a, --append
append to the given FILEs, do not overwrite
[...]
Váš příkaz se tedy stane
echo "something" | sudo tee -a /etc/config_file
Výhody tee
nad prováděním Bash s oprávněními správce jsou
- Nespouštíte Bash s oprávněními správce
- Pouze část 'zápis do souboru' běží s pokročilými oprávněními
- Citování složitého příkazu je mnohem jednodušší
Přesměrování se provede v aktuálním shellu. Chcete-li provést přesměrování se zvýšenými oprávněními, musíte spustit samotný shell se zvýšenými oprávněními:
sudo bash -c "somecommand >> somefile"
Nechte sudo vytvořit sub-shell:
sudo sh -c "echo 'JAVA_HOME=/usr/lib/jvm/java-6-sun' >> /etc/profile"
V tomto příkladu sudo spustí "sh" se zbytkem jako argumenty.
(toto je ukázáno jako příklad na manuálové stránce sudo)