如何按内容查找重复的jpgs?

时间:2016-01-12 15:47:35

标签: image image-processing

我想在一系列文件夹中找到并删除图片。问题是图像名称不一定相同。

我所做的是从图像字节码中复制任意字符串并像

一样使用它
grep -ir 'YA'uu�KU���^H2�Q�W^YSp��.�^H^\^Q��P^T' .

但是,由于有数千张图像,这种方法永远存在。此外,一些图像是由原始的imagemagic创建的,因此不能使用大小来查找它们。

所以我想知道最有效的方法是什么?

1 个答案:

答案 0 :(得分:2)

更新了答案

如果您想要比较特定文件的校验和,则可以校验所有子目录中的所有文件,并找到相同的文件:

find . -name \*.jpg -exec bash -c 's=$(md5 < {}); echo $s {}' \; | grep "94b48ea6e8ca3df05b9b66c0208d5184"

或者这也适用于你:

find . -name \*.jpg -exec md5 {} \; | grep "94b48ea6e8ca3df05b9b66c0208d5184"

原始答案

最简单的方法是为每个文件生成一次md5校验和。根据{{​​1}}程序的工作方式,您可以执行以下操作:

md5

或许你可以使用

find . -name \*.jpg -exec bash -c 's=$(md5 < {}); echo $s {}' \;

94b48ea6e8ca3df05b9b66c0208d5184 ./a.jpg
f0361a81cfbe9e4194090b2f46db5dad ./b.jpg
c7e4f278095f40a5705739da65532739 ./c.jpg

现在您可以使用md5 -r *.jpg 94b48ea6e8ca3df05b9b66c0208d5184 a.jpg f0361a81cfbe9e4194090b2f46db5dad b.jpg c7e4f278095f40a5705739da65532739 c.jpg 查找所有重复项。