我的“废纸篓”中有一个奇怪的文件,清空废纸篓后它仍不会消失。文件名如下:
␀␀␀õ␀␀.õ␀
该文件显然位于 /Volumes/NO NAME/.Trashes/501/ 中(“NO NAME”是我的 Boot Camp Windows 卷,所以我甚至不确定它为什么有一个 .Trashes 目录。如果我尝试“ls”该文件,甚至该目录,我会得到:
ls: \004␀␀␀õ\001␀␀.õ\001␀: File name too long
如果我尝试“sudo ls -le”、“sudo ls -la”或“sudo ls -i”,也会发生同样的事情。
当我尝试 rm 它甚至“find . -type f -print0 | sudo xargs -0 rm”时也会出现类似的结果
我怎样才能摆脱它?
答案1
这个人遇到了同样的问题,并通过在 Windows 中执行磁盘检查解决了该问题。
答案2
可以尝试使用比 ls 更低级别的调用来列出目录
python -c 'import os; print repr(os.listdir("/Volumes/NO NAME/.Trashes/501/"))'
如果有效的话,也许可以尝试使用unlink()
函数
编辑:取消链接尝试
python -c 'import os; os.unlink("/Volumes/NO NAME/.Trashes/501/\x04\xe2\x90\x80\xe2\x90\x80\xe2\x90\x80o\xcc\x83\x01\xe2\x90\x80\xe2\x90\x80.o\xcc\x83\x01\xe2\x90\x80")'
答案3
您是否尝试过通过 inode 删除?
ls -i
将显示文件及其 inode 编号
$ ls -i *.log
694197 alf.log 694719 mb.log
694181 fsck_hfs.log 24190 secure.log
802696 hdiejectd.log 694195 system.log
1094966 install.log 694396 windowserver.log
24189 ipfw.log
然后使用 find 按 inode 删除(比如我想从上面删除 mb.log):
find . -inum 694719 -exec rm {} \;
答案4
您可以尝试启动 Windows,看看它是否可以删除该文件(假设它确实可以看到它)。