4

重複の可能性:
sudoを使用して、書き込み権限のない場所に出力をリダイレクトするにはどうすればよいですか?

/ homeにあるファイル「foo」を変更して(sedを介して)正規表現を適用し、その結果を/ home/foo2というファイルに入れたいとします。

/ homeにもfooにも読み取り/書き込みアクセス権がないので、sudoを使用します。しかし、私はまだ許可が拒否されます

sudo sed "s/bar/baz/" <foo >foo2
bash: foo2: Permission denied

何か案は?ありがとう

4

2 に答える 2

4

インプレースオプションを使用します-i。構文は次のようになります。

sed -i [pattern] filename
于 2012-10-30T15:04:05.560 に答える
1

一般的shには悪い考えかもしれませんが、これによりfoo2、シェル用の新しいファイルを作成する権限が与えられます。

sudo sh -c "sudo sed 's/bar/baz/' <foo >foo2"

于 2012-10-30T15:12:39.800 に答える