昨晚我的 Dovecot 服务器死机了,它损坏了用户邮件目录中的一个文件。文件名现在包含特殊字符,无法删除,所有命令行工具都说找不到该文件,尽管它通过 LS 命令显示出来。
1386141318.M854059PΈ3Ώ62.email.vantagetitle.com,S?11304,W11473:2,Sc
您可以看到名称中的特殊字符,例如“Ώ”或“Έ”。
我似乎找不到任何方法来删除该文件。
我应该做一个fsck
吗?
编辑1:
我最终创建了一个新的“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#
答案1
您可以尝试使用-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
答案2
解决这些问题的最简单方法是在 rm 后使用双破折号 (--)。
# rm -- 1386141318.M854059P*
双破折号告诉命令 rm 您已经完成传递命令开关,接下来是它应该进行的操作。
-斯科特
答案3
如果存在,你可以使用以下方式浏览目录午夜指挥官。
输入mc
,使用箭头键选择文件,然后按F8
删除它
答案4
如果有可用的 GUI,请尝试使用 GUI 删除该文件。
我错误地尝试了tar xvf
Windows ZIP 文件。它弹出一堆错误,然后我得到的是这个 0 字节文件,而不是解压后的文件,文件名称非常长,其中的问号代表不可打印的字符/值。
我使用 Gnome 中的标准 GUI 文件浏览工具将文件发送到废纸篓,然后使用 GUI 进入废纸篓,永久删除该文件,以防该文件留在废纸篓中可能导致任何类型的错误。