当将sed的输出重定向到文件时,sudo无法正常工作。

29 浏览
0 Comments

当将sed的输出重定向到文件时,sudo无法正常工作。

这个问题已经有答案了:

可能是重复问题:

如何使用sudo将输出重定向到我没有写入权限的位置?

假设我想要更改位于/home下的文件“foo”,并对其应用一些正则表达式(通过sed),并将结果放入名为/home/foo2的文件中。

我既没有对/home或foo的读写许可,所以我使用sudo。 然而,我仍然被拒绝访问。

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

你有什么想法?谢谢

admin 更改状态以发布 2023年5月24日
0
0 Comments

虽然 sh 总体上可能不是好主意,但是这将允许您的 shell 创建新文件 foo2

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

0
0 Comments

使用就地选项:-i。您的语法应为:

sed -i [pattern] filename

0