私には、さまざまな視点のさまざまなメディア(写真、音楽など)を含む多くのフォルダがあります。異なるフォルダには共通のコンテンツがいくつかあります(たとえば、写真が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 {} \;
2段階システムまたは同様のシステムが良いでしょう。たとえば、最初にすべてのファイルをマージし、新しいフォルダに名前を変更してすべての一意のファイル名を取得し、重複したファイルをフィルタリングします。これを行うのに十分なストレージ容量がありますが、どうすればよいかわかりません。