GNU/Linux >> Linux の 問題 >  >> Linux

書き込み権限がないファイルにStdoutをリダイレクトしますか?

書き込み権限を持たずにファイルを変更しようとすると、エラーが発生します:

> 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

ルートとしてシェルを開き、その方法でファイルを操作する以外に、書き込み権限のないファイルにstdoutをリダイレクトする簡単な方法はありますか?

> sudo su
# echo test > /tmp/foo

承認された回答:

はい、teeを使用します 。したがって、echo test > /tmp/foo

になります
echo test | sudo tee /tmp/foo

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

echo test | sudo tee -a /tmp/foo

Linux
  1. >&-は> / dev / nullよりも効率的ですか?

  2. UNIX / Linux :/tmp および /var/tmp ディレクトリの正しい権限は何ですか

  3. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  1. パイプは一時ファイルを書き込む必要がありますか?

  2. unix:///var/run/supervisor.sock そのようなファイルはありません

  3. なぜ /home 以外のものを別のパーティションに入れるのですか?

  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. ファイルの内容をコマンド「echo」にリダイレクトしますか?

  3. 推奨される使用方法に従って、Web サイトは /var/ または /usr/ に配置する必要がありますか?