如何删除损坏的文件?
在 Linux(基于 Fedora)中,当我输入:ls -l
我得到
drwxr-xr-x. 2 dmiller3 dmiller3 4096 Jul 26 13:57 SomeFile
?????????? ? ? ? 4096 Jul 26 13:57 CorruptedFile
我无法对这个损坏的文件做任何事情。我不能在删除或任何其他操作中使用它。这是整个系统中唯一一个这样的文件。造成这种情况的原因是什么?如何消除它?
文件系统是ext2。
答案1
您可能在硬重置期间写入文件,或者您的硬盘驱动器可能有问题。 afsck
应该修复它(你必须让umount
fs 来执行此操作)。我会检查dmesg
(smartctl -a /dev/hdx
后者是 smartmontools 的一部分)以查看您的硬盘是否报告任何错误。我还会badblocks
对分区运行非破坏性的操作。
您还应该问自己为什么要运行 ext2,因为日志往往有助于解决此类问题。
答案2
我见过的文件系统的一些有趣的问题是:
- 仅在明确要求时才显示的文件:“ls file”会显示它,但普通的“ls”则不会。发生的情况是下一个文件的名称中包含“Go up a line”的转义序列
- 具有不可能权限/类型的文件:通过 fsck(8) 修复,或者只是用 rm(1) 吹走文件
- 非常深的目录树,由不法分子创建目录并循环进入它们创建:必须编写一个程序,一直到最后,然后备份循环中删除目录。