可能重复:
How do I use sudo to redirect output to a location I don’t have permission to write to?
假设我要更改一个位于/ home的文件“foo”,对其应用一些正则表达式(通过 sed ),并将结果放在名为/ home / foo2的文件中
我既没有对/ home或foo的读/写访问权限,所以我使用 sudo 。但是,我仍然获得了拒绝许可
sudo sed "s/bar/baz/" <foo >foo2
bash: foo2: Permission denied
有什么想法吗? 感谢
答案 0 :(得分:4)
使用“就位”选项-i
。你的语法是:
sed -i [pattern] filename
答案 1 :(得分:1)
虽然sh
通常可能不是一个坏主意,但这将为您的shell创建一个新文件foo2
的权限:
sudo sh -c "sudo sed 's/bar/baz/' <foo >foo2"