![将唯一文件复制到新目录?](https://linux22.com/image/174036/%E5%B0%86%E5%94%AF%E4%B8%80%E6%96%87%E4%BB%B6%E5%A4%8D%E5%88%B6%E5%88%B0%E6%96%B0%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我有许多文件夹,其中包含不同时间点的各种媒体(例如照片、音乐)。不同的文件夹具有一些相同的内容(例如,一张照片可能位于 2 个文件夹中),但大部分应该是唯一的。不保证不同文件夹中的文件名 - 例如照片可能会显示为A/foo.png
和B/bar.png
。或者,A/baz.png
和B/baz.png
可能不是同一个文件。
我正在寻找某种方法将所有媒体合并到一个单一的平面文件夹中,并删除重复项。理想情况下,对文件最初的来源进行一些跟踪会很好(例如知道文件的output/001.png
来源A/baz.png
等),但这并不是绝对必要的。有很多(1M+ 文件),所以越快越好:)。
我最初尝试将文件夹中的所有文件复制到新文件夹中,但这花费了很长时间,并且只有在文件名相同的情况下才会进行重复数据删除,但在本例中并非如此。我认为可能有某种方法可以让这个命令运行得更快,xargs -P
但我不确定如何做。
find . -type f -exec cp {} \;
两阶段系统或类似系统就可以 - 例如,首先将所有文件展平并重命名到一个新文件夹中,以便它们都具有唯一的文件名,然后过滤掉重复项。我有足够的存储空间来做到这一点,我只是不知道该怎么做。