在我的 OS X 主机上,我在删除目录“foo”时遇到问题。
mymac:.Trashes joe$ ls
foo
mymac:.Trashes joe$ ls foo/
Ảnh011.jpg Ảnh012.jpg Ảnh013.jpg
mymac:.Trashes joe$ ls -l foo/
ls: Ảnh011.jpg: No such file or directory
ls: Ảnh012.jpg: No such file or directory
ls: Ảnh013.jpg: No such file or directory
mymac:.Trashes joe$ rm -rf foo/
rm: foo/: Directory not empty
mymac:.Trashes joe$ sudo rm -rf foo/
Password:
rm: foo/: Directory not empty
正如你所看到的,目录“foo”下有一些我只能运行ls
的文件;运行ls -l
返回错误。我无法删除单个文件或目录。使用“清空回收站”也不起作用。我还尝试过“磁盘实用程序”->“验证磁盘”和“修复磁盘”。
编辑:根据要求,这里有更多信息
mymac:.Trashes joe$ ls -del foo/
drwxrwxrwx 2 joe staff 16384 13 May 11:19 foo/
mymac:.Trashes joe$ ls -del foo
drwxrwxrwx 2 joe staff 16384 13 May 11:19 foo
mymac:.Trashes joe$ LC_ALL=C
mymac:.Trashes joe$ ls -ABeli foo/
total 1812
18972612676 -rwxrwxrwx 1 joe staff 305951 13 May 11:19 Ảnh011.jpg
19123958587 -rwxrwxrwx 1 joe staff 309745 13 May 11:19 Ảnh012.jpg
18511775654 -rwxrwxrwx 1 joe staff 310907 13 May 11:19 Ảnh013.jpg
mymac:.Trashes joe$ find foo/
foo/
foo//Ảnh011.jpg
foo//Ảnh012.jpg
foo//Ảnh013.jpg
答案1
看来,您的条目名称似乎foo
未链接到文件的有效节点。我不确定这是如何发生的,或者为什么rm -rf
即使删除了该条目也不从目录中删除。
但是,如果您将目录条目与有效的文件节点关联起来,它可能会删除吗?换句话说,也许是这个?
touch foo/Ảnh011.jpg
rm foo/Ảnh011.jpg
嗯。还有人认为//
下面的结果是出乎意料的吗?
mymac:.Trashes joe$ find foo/
foo/
foo//Ảnh011.jpg
foo//Ảnh012.jpg
foo//Ảnh013.jpg
我原以为它会如下所示。 (无论它是什么)可能//
是解决问题的线索吗?
foo/Ảnh011.jpg
foo/Ảnh012.jpg
foo/Ảnh013.jpg
答案2
您是否尝试过先重命名文件?这些文件的开头有一个特殊字符“Ả”。尝试先重命名文件,然后删除它们。
答案3
上面的回复很好,但还有一件事你应该知道。
默认情况下,“ls”(或“ls -l”)不显示名称以“.”开头的文件。 (又名“点文件”)
为了确保您看到所有文件,请使用“ls -a”。
尽管不确定您是否还有其他以“.”开头的文件,但这是可能的。在 'foo/' 中,这就是为什么它不为空。
也就是说,它们应该已使用“/bin/rm -rf foo”删除,因此该目录中必定存在其他问题。
答案4
尝试使用此命令删除文件,然后删除文件夹。
find . -iname '*.jpg' -exec rm {} \;