Bash命令(重新)移动重复文件[例如照片]

时间:2015-07-23 15:48:43

标签: bash

如果我有一个包含大量照片的目录,并且其中一些是重复的[除了名称之外的所有内容],有没有办法可以获得唯一身份列表并将它们移动到另一个目录?

例如

find . -type f -print0 | xargs -0 md5sum

这会给我一个“md5文件名”列表

现在我只想基于那个看独特的...... 例如管道到sort -u

之后我想将所有这些文件复制到其他地方,但我以后可以担心......

2 个答案:

答案 0 :(得分:2)

您可以使用fdupes

fdupes -r .

获取重复列表。通过一些命令链可以实现此举。

fdupes -r -f .

仅显示重复的文件。所以如果你有两次图像。您将获得一个条目,而不是两个重复的路径。

移动你可以做到:

for file in $(fdupes -r -f . | grep -v '^$')
do
  mv "$file" duplicated-files/
done

但要注意姓名冲突......

答案 1 :(得分:1)

从那里:

sort | uniq -w 32

只比较前32个字符,我认为应该是md5sum本身。