如何在Linux文件系统上为文件元数据添加md5 sum以进行搜索和重复数据删除?

时间:2016-02-15 01:35:25

标签: linux filesystems duplicates md5sum

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

checkandsave -f newfile -d destination

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

R.E。使用rmlink:

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

1 个答案:

答案 0 :(得分:0)

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指定输出报告/ shell脚本的位置(如果需要)

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

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

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

将其切换为md5