Dou*_*eux 3 permissions bash sed
我正在使用 Sed 查找和替换文件中的字符串。这是第一次使用它,所以我可能做错了,
我有一个名为“test.properties”的“root”拥有的文件,我想用“cat”替换“world”。
所以我运行这个命令:
sudo sed s/world/cat/ <test.properties >newtest.properties
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但是当我想像这样写入相同的文件时:
sudo sed s/world/cat/ <test.properties >test.properties
Run Code Online (Sandbox Code Playgroud)
它说“-bash:test.properties:权限被拒绝”,但我使用的是“sudo”,为什么它被拒绝了?
不要运行您尝试运行的命令
如果您尝试将 sed 的输出重定向回同一个文件,它会将其清空,删除所有文件内容。尝试这样的事情:
sed s/world/cat/ <test.properties >newtest.properties && sudo mv newtest.properties test.properties
Run Code Online (Sandbox Code Playgroud)
您的权限被拒绝,因为命令的重定向部分不是通过 sudo 运行,而是以普通用户身份运行。
第一个命令有效,因为您只是读取第一个文件并写入您拥有的文件,因此您的普通用户可以这样做。
归档时间: |
|
查看次数: |
15625 次 |
最近记录: |