tee -a
を使用 (または tee --append
) sudo
で
tee - read from standard input and write to standard output and files
[...]
-a, --append
append to the given FILEs, do not overwrite
[...]
したがって、コマンドは
echo "something" | sudo tee -a /etc/config_file
tee
の利点 管理者権限で Bash を過剰に実行することは
- 管理者権限で Bash を実行していない
- 「ファイルへの書き込み」部分のみが高度な権限で実行されます
- 複雑なコマンドの引用ははるかに簡単です
リダイレクトは現在のシェルで実行されます。昇格された権限でリダイレクトを行うには、昇格された権限でシェル自体を実行する必要があります:
sudo bash -c "somecommand >> somefile"
sudo にサブシェルを生成させる:
sudo sh -c "echo 'JAVA_HOME=/usr/lib/jvm/java-6-sun' >> /etc/profile"
この例では、sudo は残りを引数として「sh」を実行します。
(これは、sudo の man ページに例として示されています)