我在一个目录中有500个文件,其中一些是重复的。它们被称为prime-0.png到prime-499.png。我可以通过运行md5sum(例如)看到它们是重复的。
如何删除重复的文件,以便只留下一个副本
每一个?
md5sum prime-*
给我:
ed8c994d608ba2fde59e6a08c65bcc1f prime-0.png
e7667b2c92359d23cd1cd251e54b41ba prime-100.png
0afc9b57206cde58ff609a6476bde7a6 prime-101.png
[...]
我可以通过执行以下操作来查看复制了多少个:
md5sum prime-* |cut -f1 -d\ |sort|uniq -c|sort -rn|less
这给了我:
5 f905fde6abfbcbb00e079dcd4ecacbb7
3 efcdd042802fc0efc6d9fdf164df4e20
3 ed5a46d250c85809b57ee96385f655d2
3 c4cff53df13b87381b2c06538c339790
[...]
最佳答案
此答案仅适用于没有换行符的文件名。awk
在第一列中输出重复项:
md5sum prime-* | awk 'n[$1]++' | cut -d " " -f 3- | xargs -I {} echo rm {}
如果输出看起来不错,请删除
echo
。从
man xargs
:-I replace-str
:用从标准输入读取的名称替换初始参数中出现的replace-str
。另外,未加引号的空格不会终止输入项;关于linux - 如何在Linux中删除重复文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57736996/