这是一台 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>
终止该进程后,您应该能够删除该目录。