查找/检查冗余文件以进行清理和备份

查找/检查冗余文件以进行清理和备份

我经常想查明给定文件夹的内容是否匹配,或者单个文件夹的内容是否冗余 - 也许是为了检查它是否重复并且可以删除,或者确保某处有每个文件的副本。

如果文件夹结构匹配且文件尚未重命名,则可以使用diff -rmeld或任何比较文件夹的工具(如果您重命名文件甚至目录,它将停止工作)。

如果您只是想查找重复项,则可以使用duff或之类的工具fdupes

但是——这引出了我的问题- 我想检查/查询两个文件夹是否具有相同的内容文件内容基础(而不是文件内容和文件路径基础类似diff)或者,我不想列出位于给定文件夹中的重复项,而是想要获取文件没有我的系统上至少有一份副本。

可能的工具的输出可能如下所示:

fuzzydiff folder1 folder2
Only in 1: folder1/img_1234.jpg
Only in 2: folder2/bali/very_nice_moment.jpg
Only in 2: folder2/pictures_of_me/favorite_picture.jpg

(在这个例子中,文件夹balipictures_of_me内部folder2可能根本不存在,folder所以diff -r只需跳过该目录)

是否有人有类似的需求/要求,并且找到了一种方便可靠的方法来检索有关几百 GB 到几 TB 的文件系统的描述信息有效率的

我正在使用 Linux 系统,因此建议的方法应该是 Posix-ish 和命令行基础(为了堆叠/合并结果)。

如果我的描述仍然太模糊:我想要解决的一个问题的一个反复出现的例子是:我想删除一个大的包含我复制/移动/重命名的图片或视频的文件夹,并且我想在这个文件夹中有一个文件列表(我希望是空的),而我在某处没有任何副本。

我目前正在写一篇工具这满足了我的要求,但我怀疑我不是第一个遇到这种情况/问题的人。在任何其他情况下,我都非常感谢任何有助于开发的提示或反馈!

答案1

你有没有尝试过git 附件管理文件?它会自动跟踪哪些文件位于哪个存储中,并确保至少有

答案2

你可以这样做林特

使用以下命令行查找仅位于 folder3 中的文件:

rmlint -k -o uniques folder1 folder2 // folder3

编辑:还要找出哪些文件可以安全地从文件夹3中删除,因为它们在文件夹1或文件夹2的某处有副本:

rmlint -km folder3 // folder1 folder2

这将生成一个 shell 脚本 (rmlint.sh),您可以使用它来删除已识别的文件。对于大型数据集,您可能需要通过添加到-g命令来添加进度条。

相关内容