通过文件MD5删除重复文件,仅保留一份源文件

不能不说shell命令的强大,一条命令就可以解决繁琐编码。

根据文件MD5删除重复文件,仅保留一份文件:

find . -type f -exec md5sum {} \; | sort -k 1 | awk 'a[$1]++{print $2}' | xargs -t -i rm -f {}

这一条命令很容易理解,需要看一下find,md5sum,sort,awk,和xargs的相关解析。

1、首先使用find查找当前目录下的文件然后调用md5sum对文件进行md5计算;

2、使用sort对文件md5进行排序,为了使相同md5的文件排列到一起;

3、使用awk数组对md5进行统计,如果该md5对应多个文件,则输出该文件;

4、通过rm删除第三步统计出来的文件;

你可能感兴趣的:(脚本编程)