如何清空垃圾?

如何清空垃圾?

我的“废纸篓”中有一个奇怪的文件,清空废纸篓后它仍不会消失。文件名如下:

␀␀␀õ␀␀.õ␀

该文件显然位于 /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,看看它是否可以删除该文件(假设它确实可以看到它)。

相关内容