J'essaie de trouver un moyen de vérifier dans un répertoire donné des fichiers en double (même avec des noms différents) et de les remplacer par des liens symboliques pointant vers la première occurrence. J'ai essayé avec fdupes
mais il répertorie simplement ces doublons.
C'est le contexte: je personnalise un thème d'icônes à mon goût, et j'ai constaté que de nombreuses icônes, même si elles ont des noms différents et des emplacements différents dans leur dossier parent, et sont utilisées à des fins différentes, sont fondamentalement les mêmes image. Puisqu'appliquer la même modification vingt ou trente fois est redondant quand une seule est vraiment nécessaire, je veux garder une seule image et créer un lien symbolique entre toutes les autres.
Par exemple, si je cours fdupes -r ./
dans le répertoire testdir
, cela pourrait me renvoyer les résultats suivants:
./file1.png
./file2.png
./subdir1/anotherfile.png
./subdir1/subdir2/yetanotherfile.png
Compte tenu de cette sortie, je voudrais conserver uniquement le fichier file1.png
, supprimer tous les autres et les remplacer par des liens symboliques pointant vers lui, tout en conservant tous les noms de fichiers d'origine. Ainsi file2.png
conservera son nom, mais deviendra un lien vers file1.png
au lieu d'être un doublon.
Ces liens ne doivent pas pointer vers un chemin absolu, mais doivent être relatifs au parent testdir
répertoire ; c'est-à yetanotherfile.png
- dire pointera vers ../../file1.png
, pas vers/home/testuser/.icons/testdir/file1.png
Je m'intéresse à la fois aux solutions qui impliquent une interface graphique et une CLI. Il n'est pas obligatoire de l'utiliser, fdupes
je l'ai cité car c'est un outil que je connais, mais je suis ouvert à des solutions qui utilisent également d'autres outils.
Je suis à peu près sûr qu'un script bash pour gérer tout cela ne devrait pas être si difficile à créer, mais je ne suis pas assez expert pour savoir comment l'écrire moi-même.
v1.51
(Ubuntu 14.04.2 LTS).