直接上命令
find -not -empty -type f -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate | cut -b 35-
解释
第一句
find是查找命令,-not -empty寻找非空文件;-type f寻找常规文件;-print0防止文件名里带空格
第二句
xargs命令将之前的结果转化为参数,供后面的命令调用
-0与前面的-print0配合使用,指定使用NULL而不是空格、Tab制表符、回车符为分隔符和结束符
md5sum计算每个文件的MD5值
第三句
sort是排序命令
第四句
uniq -w32是指寻找前32个字符相同的行,原因在于md5值一定是32位的,而后面的–all-repeated=separate是指将重复的部分放在一类,分类输出。
第五句
由于我们的结果带着md5值,不是很好看,所以我们截取md5值后面的部分,cut是文本处理函数,这里-b 35-是指只要每行35个字符之后的部分。
参考文章
Linux 查找重复文件方法汇总xargs命令详解Linux命令大全(入门必备)