在 Linux 中删除损坏的文件

9 linux filesystems

我怎样才能删除这个文件?我认为这是 VFAT 文件系统中的损坏文件。

?????????  ? ?       ?        ?            ? 100.jpg
Run Code Online (Sandbox Code Playgroud)

gol*_*udo 5

一种可能性是找出inode文件的编号,您可以通过运行ls -i. 这将返回两列——第一列是 inode,第二列是文件名。然后,您可以使用该find命令仅选择具有该特定 inode 的文件,然后将其删除。

sh-4.1$ ls -i .
  17921 somefile.ods
    169 someotherfile.conf
    305 -????????? ? ? ? ? ? 100.jpg
  18048 yetanotherfile.jpg

sh-4.1$ find . -maxdepth 1 -inum 305 -ok rm '{}' \;
< rm ... -????????? ? ? ? ? ? 100.jpg > ? y
Run Code Online (Sandbox Code Playgroud)

由于 inode 很可能是文件唯一的(假设没有硬链接),这将允许您在删除时没有通配符固有的风险。find 命令的maxdepthok选项只会使您意外访问错误文件的可能性更低。

  • 那些文件有?作为节点号 (3认同)

cHa*_*Hao 0

你可以尝试

rm *100.jpg*
Run Code Online (Sandbox Code Playgroud)

? 要么是字面上的问号,要么是没有意义的字符。不管怎样,如果文件系统没有被管理,操作系统本身(和外壳)通常可以删除文件。

但是,如果文件系统混乱,删除内容可能会使情况变得更糟。我建议您启动 Windows 来扫描驱动器,并删除其中的文件(如果可以的话)。