這是一台solaris機器(unix)
我有一個資料夾包含一些子資料夾,但其中沒有文件。
root # ls -al `find trash`
trash:
total 6
drwxrwxrwx 3 root root 512 Aug 6 07:37 .
drwxr-xr-x 9 ---- ---- 1024 Oct 8 06:20 ..
drwxrwxrwx 3 root root 512 Aug 6 07:37 src
trash/src:
total 6
drwxrwxrwx 3 root root 512 Aug 6 07:37 .
drwxrwxrwx 3 root root 512 Aug 6 07:37 ..
drwxrwxrwx 3 root root 512 Aug 6 07:37 tob
trash/src/tob:
total 4
drwxrwxrwx 3 root root 512 Aug 6 07:37 .
drwxrwxrwx 3 root root 512 Aug 6 07:37 ..
我嘗試刪除它但失敗了:
root # rm -rf trash
rm: Unable to remove directory trash/src/tob: File exists
rm: Unable to remove directory trash/src: File exists
rm: Unable to remove directory trash: File exists
我嘗試尋找掛載點但失敗:
root # mount | grep `pwd`
我嘗試尋找其中包含 pwd 的進程,但失敗了:
root # fuser -u `find trash`
trash:
trash/src:
trash/src/tob:
有什麼線索我應該如何刪除這個資料夾而不格式化磁碟。我仍然是 unix 的新手,所以如果您正在尋找更多信息,請告訴我該命令。
答案1
可能某些進程正在重新創建托布rm 刪除後直接檔案。這是一篇關於處理它的部落格文章。
刪除此文件只會將其替換為另一個文件。有兩種解決方案:手動刪除 NFS 伺服器上的文件,或(如果您沒有此類存取權限)終止其進程。
如果檔案不在 NFS 上,建議檢查哪個程序擁有該檔案的句柄,然後終止它仍然適用。檢查:
fuser -u <file>
終止進程後,您應該能夠刪除該目錄。