書き込み権限のないファイルに標準出力をリダイレクトします。

書き込み権限のないファイルに標準出力をリダイレクトします。

書き込み権限なしでファイルを変更しようとすると、次のエラーメッセージが表示されます。

> touch /tmp/foo && sudo chown root /tmp/foo
> echo test > /tmp/foo
zsh: permission denied: /tmp/foo

Sudoingはコマンドをrootとして実行するので役に立ちませんが、シェルはstdoutリダイレクトとファイルを開くことをユーザーが行った方法で処理します。

> sudo echo test > /tmp/foo
zsh: permission denied: /tmp/foo

rootでシェルを開き、そのようにファイルを操作するだけでなく、書き込み権限のないファイルにstdoutをリダイレクトする簡単な方法はありますか?

> sudo su
# echo test > /tmp/foo

ベストアンサー1

はい、使用してくださいteeecho test > /tmp/foo

echo test | sudo tee /tmp/foo

>>()を追加することもできます。

echo test | sudo tee -a /tmp/foo

おすすめ記事