rm:无法删除“文件”:没有此文件或目录

rm:无法删除“文件”:没有此文件或目录

我需要在 Linux 下删除一些文件,但是当我尝试这样做时,我总是得到相同的错误: rm: cannot remove 'file': No such file or directory。问题是所述文件在每个文件管理器和 中都可见ls,我甚至可以用它们各自的应用程序打开它(即我可以用 Kate 打开和阅读文本文件,用 Gwenview 打开和阅读图像,等等);所以我不明白为什么当我尝试删除它们时,它们被标记为不存在。

如果有帮助的话,这些都是备份文件,它们位于可移动的 NTFS 硬盘上,并且都在失败的备份任务的文件夹中;它们是由 Back in Time 创建的:该程序通过比较后续备份和在文件未更改时进行硬链接来节省空间;我想这与当前的问题有关。

我该如何删除这些文件?我尝试使用,rm -f但没有成功(即使使用sudo)。它们仍然存在并且仍然不存在;即使在 Windows 下,我也无法删除它们;我还能尝试做什么?

PS:我已经向薛定谔的猫寻求建议,但没有成功。


以下是这些文件的名称示例:

rcb-ScrollBarH_bar_focus.png  rcb-separator_vertical.png  ScrollBarNib.png  thumbborder-thin-black.png
rcb-ScrollBarV_bar_focus.png  scrollbarh_bar_focus.png    scrollbarv.png    thumbborder-thin.png

答案1

首先请检查您的文件系统是否一致。由于您使用 NTFS,因此最好在 Windows 上执行此操作。

时光倒流更改所有文件和文件夹的权限,这样您就不会意外更改或删除备份。请使用 BackInTimes GUI 删除整个快照或部分快照,或者先更改权限:

find /path/to/backintime/HOST/USER/PROFILE/SNAPSHOTID/backup -type d -exec chmod u+wx {} +
rm /path/to/backintime/HOST/USER/PROFILE/SNAPSHOTID/backup/file/to/remove

编辑

根据您的评论,您的驱动器已经不一致。这意味着其他文件也可能已损坏。rsync通常仅比较文件大小和修改时间来决定文件是否需要同步。这不会检测损坏的文件。

因此请使用

backintime --profile-id 1 --checksum --backup

适用于所有配置文件。这将花费很长时间,但最终您的备份将再次安全。

免责声明:我是 BackInTime 的当前主要开发人员

答案2

这很可能是因为该文件有一些不可打印字符或看起来相同的字符,或者由于 ls 的限制。

尝试使用 ls 的 --escape 选项或 cat 工具(cat -v)来查找正确的文件名,然后执行

rm -i --* 希望这可以帮助

相关内容