Linux 查找两个文件夹之间缺少的文件

Linux 查找两个文件夹之间缺少的文件,linux,find,md5sum,Linux,Find,Md5sum,我正在寻找一种方法来查找文件夹及其子文件夹中的文件,这些文件在另一个文件夹和子文件夹中没有重复(即丢失)。但是搜索应该只在一个方向上执行:在folder2中搜索folder1中的文件,而不是在folder1中搜索folder2中的文件 试图澄清 我有一个文件夹,在其中我使用bittorentSync上传我的iphone的所有照片。 根据iphone galery,此文件夹具有子文件夹(例如100APPLE、101APPLE、102APPLE…) 我有另一个文件夹存放我的照片库。在该文件夹中,照片

我正在寻找一种方法来查找文件夹及其子文件夹中的文件,这些文件在另一个文件夹和子文件夹中没有重复(即丢失)。但是搜索应该只在一个方向上执行:在folder2中搜索folder1中的文件,而不是在folder1中搜索folder2中的文件

试图澄清

我有一个文件夹,在其中我使用bittorentSync上传我的iphone的所有照片。 根据iphone galery,此文件夹具有子文件夹(例如100APPLE、101APPLE、102APPLE…)

我有另一个文件夹存放我的照片库。在该文件夹中,照片存储在以年命名的子文件夹中,然后存储在以年-月命名的子文件夹中。使用“year\u month\u day-XXX.jpg”重命名照片,其中XXX是照片编号

结构如下所示:

2010/2010-06/2010_06_02-001.jpg
2010/2010-06/2010_06_02-002.jpg
2012/2012-08/2012_08_09-001.jpg
2012/2012-08/2012_08_09-002.jpg
2012/2012-08/2012_08_09-003.jpg
我正在使用以下命令搜索其他文件夹中不存在的文件。由于文件被重命名,我需要使用md5sum来比较这些文件

 find iphoneSync PhotosLib -type f -exec md5sum '{}' ';' | sort | uniq --unique -w 30 > ListFilesToCopy.txt
这很好,但它正在双向搜索。。。i、 e.将文件从iphoneSync搜索到Photolib,也将文件从Photolib搜索到iphoneSync

我想阻止第二个方向的搜索,即从Photolib到iphoneSync的文件。iphoneSync包含大约300张照片,而Photolib(和子文件夹)包含超过10000个文件

目前,由于搜索提供双向搜索的结果,我不得不使用此命令复制临时文件夹中PhotosLib中丢失的文件:

cp $( awk -F"iphoneSync" 'NF>1{ print "iphoneSync"$2 }' ListFilesToCopy.txt ) AmokTempDir/
之所以使用temp dir,是因为我使用了Amok Exif Sorter,根据Exif数据自动移动和重命名PhotosLib正确子文件夹中的照片

我期待任何建议或提示,使这个搜索只在一个方向上更有效


提前感谢。

通过哈希比较,您的效率是有限的。您必须对这两个集中的每个文件执行哈希,这对于大型文件来说是一个非常昂贵的操作。然后,您仍然需要对至少一个列表进行排序并进行搜索(根据它们的大小,两个列表的排序速度可能更快)。通过离线维护PhotosLib中所有文件的排序md5sum,并且只需要搜索每个可能的新文件,您可以大大加快搜索速度。谢谢!这是一个非常好的建议。我将研究如何实现这种优化