重複ファイルを見つけて、それらをシンボリックリンクに置き換えます
特定のディレクトリ内で重複ファイル(名前が異なる場合でも)をチェックし、それらを最初の出現を指すシンボリックリンクに置き換える方法を見つけようとしています。私は試しましたfdupesが、それらの重複をリストするだけです。 それがコンテキストです:私は自分の好みに合わせてアイコンテーマをカスタマイズしていますが、親フォルダー内の名前や場所が異なっていても、さまざまな目的に使用されていても、多くのアイコンは基本的に同じであることがわかりました画像。1つだけが本当に必要な場合、同じ修正を20回または30回適用することは冗長であるため、1つの画像のみを保持し、他のすべてをシンボリックリンクしたいと思います。 例として、fdupes -r ./ディレクトリ内で実行testdirすると、次の結果が返される場合があります。 ./file1.png ./file2.png ./subdir1/anotherfile.png ./subdir1/subdir2/yetanotherfile.png この出力を考えるfile1.pngと、元のファイル名をすべて維持しながら、ファイルのみを保持し、他のすべてを削除し、それらを指すシンボリックリンクに置き換えたいと思います。そのfile2.pngため、その名前は保持file1.pngされますが、複製ではなくへのリンクになります。 これらのリンクは絶対パスを指すのではなく、親testdirディレクトリからの相対パスである必要があります。すなわち、ではなくをyetanotherfile.png指すよう../../file1.pngになります/home/testuser/.icons/testdir/file1.png GUIとCLIが関係するソリューションの両方に興味があります。使用することは必須ではありませんfdupesが、これは私が知っているツールであるため、引用していますが、他のツールを使用するソリューションも受け入れています。 これらすべてを処理するbashスクリプトを作成するのはそれほど難しくないはずですが、自分で作成する方法を見つけるのに十分な専門家ではありません。