Permissions
使用 Sed 時權限被拒絕
我正在使用 Sed 查找和替換文件中的字元串。這是第一次使用它,所以我可能做錯了,
我有一個名為“test.properties”的“root”擁有的文件,我想用“cat”替換“world”。
所以我執行這個命令:
sudo sed s/world/cat/ <test.properties >newtest.properties
而且效果很好,但是當我想像這樣寫入 SAME 文件時:
sudo sed s/world/cat/ <test.properties >test.properties
它說“-bash:test.properties:權限被拒絕”,但我使用的是“sudo”,為什麼它被拒絕?
不要執行您嘗試執行的命令
如果您嘗試將 sed 的輸出重定向回同一個文件,它會將其清空,從而刪除所有文件內容。嘗試這樣的事情:
sed s/world/cat/ <test.properties >newtest.properties && sudo mv newtest.properties test.properties
您獲得權限被拒絕,因為命令的重定向部分不是通過 sudo 執行,而是以普通使用者身份執行。
第一個命令有效,因為您只是讀取第一個文件並寫入您擁有的文件,因此您的普通使用者可以這樣做。