如何将 md5 sum 添加到 Linux 文件系统上的文件元数据以进行搜索和重复数据消除



我有大量文件偶尔具有不同名称的重复项,并希望向文件系统添加类似 fslint 的功能,以便可以对其进行重复数据删除,然后根据已知的 md5 值检查在指定位置创建的任何新文件。目的是在整个文件集合的初始求和之后,开销较小,因为它只需要将新文件的 md5 总和与现有总和的存储进行比较。此检查可以是日常工作,也可以作为文件提交过程的一部分。

checkandsave -f newfile -d destination

此实用程序是否已存在?存储fileid-md4sum对的最佳方法是什么,以便尽可能快地搜索新文件的总和?

r.e. 使用 rmlink:

rmlink 将校验和存储在哪里,还是每次运行都重复该工作?我想将校验和添加到文件元数据(或某种优化搜索速度的存储形式(中,以便当我有一个新文件时,我会生成它的总和,并根据现有的预先计算的总和进行检查,对于所有相同大小的文件。

是的,rmlint 可以通过--xattr-read --xattr-write选项执行此操作。

cron 作业如下所示:

/

usr/bin/rmlint -T df -o sh:/home/foo/dupes.sh -c sh:link --xattr-read --xattr-write/path/to/files

-T df意味着只需查找重复的文件

-o sh:/home/foo/newdupes.sh指定输出报告/外壳脚本的放置位置(如果需要(

-c sh:link指定 shell 脚本应将重复项替换为硬链接或符号链接(或 btrfs 上的引用链接(

请注意,rmlint仅在必要时计算文件校验和,例如,如果只有一个给定大小的文件,则不可能重复,因此不会计算校验和。

编辑:校验和存储在文件扩展属性元数据中。 默认值使用 SHA1,但您可以通过-a md5将其切换到 md5

最新更新