我有大型項目和一些腳本來編譯它們。我不能在這裏添加所有代碼,所以我會嘗試簡化問題:在清理部分,我需要清除名爲directory
的文件夾,其中包含名爲innerDir
的其他目錄。我有清潔directory
這個bash命令:rm -r -f不刪除內部文件夾
clean:
rm -r -f directory
當目錄是我事先mkdir -p
創建的文件夾。當我清理,我得到這個錯誤:
rm: cannot remove 'directory': Directory not empty
但是,當我試圖進入directory
,我看到它是空的。因此,對於調試,我修改了部分清潔製爲:
rm -r -f directory/*
find directory
rmdir directory
(它該做的是相同的,但在這裏我也能看到如果directory
所有內容被真正刪除的機會)。
現在我得到這個錯誤:
find: 'directory/innerDir': Permission denied
有兩件事情,不清楚我在這裏:
(1)。 innerDir
是在cleing部分之前使用makedir -p
創建的,並且稍後在代碼中沒有更改其權限。爲什麼我沒有權限刪除它? (2)。如果我再次嘗試清洗 - 清洗成功,我沒有任何許可問題。所以,如果我在第一次嘗試刪除它時遇到權限錯誤,爲什麼我不能在第二次得到它?
你用sudo運行你的命令嗎? –
@RamanSailopal - no。爲什麼我需要使用sudo運行? – Rodrigo
我將在'clean'目標中使用'-rm -r -f directory'。即使'rm'失敗,make也會繼續。只是一個解決方法 – dlmeetei