使用错误的文件名称Linux删除损坏的文件

昨天晚上我有一个Dovecot服务器locking,它损坏了用户的maildir中的文件。 文件名现在有特殊字符,不能被删除,所有的命令行工具都说文件找不到,即使它通过LS命令显示出来。

1386141318.M854059PΈ3Ώ62.email.vantagetitle.com,S?11304,W11473:2,Sc 

您可以看到名称中的特殊字符,例如“Ώ”或“Έ”。

我似乎无法find任何方法来删除此文件。

我应该做一个fsck

编辑1:

我最终创build了一个新的“cur”目录,并把所有好的电子邮件转移到它。 我把旧的“cur”目录改名为“bad cur”

我试过以下…

 sh-3.2# rm -rf badcur rm: badcur: Directory not empty sh-3.2# cd badcur sh-3.2# ls 1386141318.M854059PΈ3Ώ62.email.vantagetitle.com,S?11304,W?11473:2,Sbc sh-3.2# rm -rf 1386141318.M854059PΈ3Ώ62.email.vantagetitle.com,S?11304,W?11473:2,Sbc sh-3.2# ls 1386141318.M854059PΈ3Ώ62.email.vantagetitle.com,S?11304,W?11473:2,Sbc sh-3.2# ls -i ls: 1386141318.M854059PΈ3Ώ62.email.vantagetitle.com,S?11304,W11473:2,Sbc: No such file or directory sh-3.2# 

你可以尝试使用-i ,这会给你一个问题

 rm -i 1386141318.M854059P* rm: remove regular file '1386141318.M854059PΈ3Ώ62.email.vantagetitle.com,S?11304,W11473:2,Sc'? 

并回答y


您可以使用它的inode号码来删除文件。 使用ls -li来获取文件的inode号码。 一旦你有了它,使用find来删除它

 find . -inum <inode number> -delete 

解决这些问题的最简单的方法是在RM后面使用双点划线( – )。

 # rm -- 1386141318.M854059P* 

双破折号告诉命令rm你已经完成了传递命令开关,接下来是它应该运行的命令。

斯科特

如果有的话,你可以使用午夜指挥官浏览目录。

inputmc ,使用箭头键select文件,然后F8删除它

声音中断,卸载文件系统并为您的文件系统运行正确版本的fsck

可能是fsck.ext3 /dev/sdaN

运行一个df . 在目录中,如果你不知道你的文件系统。

如果您不知道文件系统的正确types,请运行mount

如果您有可用的GUI,请尝试使用GUI删除该文件。

我错误地试图tar xvf一个Windows ZIP文件。 它吐出了一堆错误,然后我用这个0字节的文件来代替提取的文件,用一个疯狂的长问号来表示不可打印的字符/值的问号。

我使用Gnome中的标准GUI文件浏览工具将文件发送到垃圾箱,然后使用GUI去垃圾箱永久删除文件,以防文件可能导致任何types的错误留在垃圾。