我需要在 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 --*
希望这可以帮助