删除名称奇怪、没有 inode 名称且 ls 未显示的文件

删除名称奇怪、没有 inode 名称且 ls 未显示的文件

这一切都始于 Windows,我在 U 盘上发现了几个没有名字或名字奇怪的文件,这些文件被列为 1980 年创建的,无法删除,如下所示Windows 示例。我尝试删除它们时收到的错误消息要么是“需要权限”,要么是“文件名太长”。好吧,我说,我会转向 linux(实际上,我只是打开了 MobaXterm 终端,以为这将是 5 秒钟的工作)。

我进入了有问题的文件夹,然后输入

ls -l

发现该命令返回了文件夹中所有其他文件的名称,而对于“来自 80 年代”的文件,它列出了以下消息:

"ls: ./0: No such file or directory"

所有 80 年代的文件都显示了相同的消息。根据其他论坛的建议,我尝试使用以下命令获取文件的 inode 名称:

ls -li

但是(正如预期的那样)我得到了除“来自 80 年代”的文件之外的所有文件的 inode 号,对于这些文件,我仍然收到消息

ls: ./a: No such file or directory

我自以为很聪明,尝试着找出创建日期。我找到了一个关于如何删除在给定日期之前创建的文件的建议这里。我按照建议创建了时间戳文件(使用相同的日期);然后,为了检查,我只运行查找部分,而不执行删除部分。我得到的是比时间戳更早的几个文件的列表和一系列消息,如下所示

find: ./a: No such file or directory

那么:我现在应该尝试什么?我愿意尝试 Windows 或 Ubuntu 的解决方案。

答案1

我想最简单的解决方案就是将所有想要保留的文件移动到另一个文件夹,然后递归删除包含这些奇怪文件的文件夹,而不跟踪链接。

相关内容