查找文件夹唯一的文件

时间:2014-09-02 15:13:48

标签: bash iphoto

如何比较一个目录而不是另一个目录的两个目录和列表文件?

我需要比较两个目录,并希望找到不重复的文件。文件名足以完成此任务;我并不真正关心内容。

我有很多iPhoto图库,我希望从中获取独特的文件,以便将它们合并到一个库中。我在包装内容中,通过目录查看,我只对原件感兴趣,而不是修改。可能99%+将是重复的,只有20K +文件列表中只有少数几个独立。如果有一个应用程序在那里已经做到这一点,那将是很好的,但我见过的所有内容(应用程序和脚本)只对提供重复项感兴趣。

1 个答案:

答案 0 :(得分:1)

您可以使用comm

comm <( cd path1 ; ls ) <( cd path2 ; ls )

第一列中的文件对于path1是唯一的,第二列中的文件对于path2是唯一的,第三列中的文件在两个路径中都是通用的。要禁止前两列,请使用

comm -12 ...

要检查整个子树,请使用find代替ls,但您需要对输出进行排序:

comm <( cd path1 ; find | sort ) <( cd path2 ; find | sort )