為什麼 `rm -rf`` 默默地失敗?

為什麼 `rm -rf`` 默默地失敗?

[編輯]請不要浪費時間閱讀我下面的問題。原來我的同事是個白痴..:)

在我的伺服器上,我嘗試使用通常的方法刪除一個資料夾及其所有子資料夾rm -rf dirname,但它默默地失敗了:

kramer65@vps1:~$ ls -l
total 24
drwxrwxr-x  2 kramer65 kramer65 4096 Jul 11 22:00 backups
drwxrwxr-x  2 kramer65 kramer65 4096 Jul 17 17:37 bin
drwxrwxr-x  3 kramer65 kramer65 4096 Sep  1 11:11 cxs
kramer65@vps1:~$ rm -rf cxs/
kramer65@vps1:~$ ls
backups  bin  cxs
kramer65@vps1:~$ sudo rm -rf cxs/
kramer65@vps1:~$ ls
backups  bin  cxs
kramer65@vps1:~$ rmdir cxs/
rmdir: failed to remove ‘cxs/’: Directory not empty

我還嘗試刪除目錄的所有內容:

kramer65@vps1:~$ cd cxs
kramer65@vps1:~/cxs$ ls
app            README.md
kramer65@vps1:~/cxs$ rm -rf *
kramer65@vps1:~/cxs$ ls
app            README.md
kramer65@vps1:~/cxs$ sudo rm -rf *
kramer65@vps1:~/cxs$ ls
app            README.md

我可以接受失敗的命令,只要它能告訴我出了什麼問題就好了。知道我在這裡做錯了什麼嗎?歡迎所有提示!

[編輯]我嘗試了以下方法(也無濟於事):

kramer65@vps1:~$ sudo rm -vrf cxs/*
removed ‘cxs/app/static/img/face1.jpg’
removed ‘cxs/app/static/img/face2.jpg’
removed ‘cxs/app/static/img/face3.jpg’
[etc.etc.]
removed directory: ‘cxs/app’
removed ‘cxs/README.md’
kramer65@vps1:~$ ls cxs/
app            README.md
kramer65@vps1:~$

[EDIT2] 原來一位同事正在執行 rsync,它不斷地將檔案重寫到該資料夾。所以它確實刪除了它們,但它也自動重新創建了它們。 (我在這裡用頭撞牆!)

答案1

嘗試以下操作

rm -rf /the/full/dir

答案2

檢查檔案的擴充屬性:

lsattr -R /cxs

如果有任何i設定了屬性,那麼它是不可變的,這意味著它不能被刪除。

刪除不可變屬性:

chattr -i <path to file/directory>

然後再嘗試刪除。

請注意,當您嘗試刪除具有不可變屬性集的檔案時,它通常不會默默地失敗,而是會抱怨「不允許操作」。

相關內容