将唯一文件复制到新目录?

将唯一文件复制到新目录?

我有许多文件夹,其中包含不同时间点的各种媒体(例如照片、音乐)。不同的文件夹具有一些相同的内容(例如,一张照片可能位于 2 个文件夹中),但大部分应该是唯一的。不保证不同文件夹中的文件名 - 例如照片可能会显示为A/foo.pngB/bar.png。或者,A/baz.pngB/baz.png可能不是同一个文件。

我正在寻找某种方法将所有媒体合并到一个单一的平面文件夹中,并删除重复项。理想情况下,对文件最初的来源进行一些跟踪会很好(例如知道文件的output/001.png来源A/baz.png等),但这并不是绝对必要的。有很多(1M+ 文件),所以越快越好:)。

我最初尝试将文件夹中的所有文件复制到新文件夹中,但这花费了很长时间,并且只有在文件名相同的情况下才会进行重复数据删除,但在本例中并非如此。我认为可能有某种方法可以让这个命令运行得更快,xargs -P但我不确定如何做。

find . -type f -exec cp {} \;

两阶段系统或类似系统就可以 - 例如,首先将所有文件展平并重命名到一个新文件夹中,以便它们都具有唯一的文件名,然后过滤掉重复项。我有足够的存储空间来做到这一点,我只是不知道该怎么做。

相关内容