Je cherche un moyen simple (une commande ou une série de commandes, impliquant probablement find
) pour rechercher des fichiers en double dans deux répertoires et remplacer les fichiers d'un répertoire par des liens physiques des fichiers de l'autre répertoire.
Voici la situation :il s'agit d'un serveur de fichiers sur lequel plusieurs personnes stockent des fichiers audio, chaque utilisateur ayant son propre dossier. Parfois, plusieurs personnes ont des copies exactes des mêmes fichiers audio. Pour l'instant, ce sont des doublons. J'aimerais faire en sorte qu'ils soient des liens physiques, pour économiser de l'espace sur le disque dur.
Réponse acceptée :
Il existe un script perl sur http://cpansearch.perl.org/src/ANDK/Perl-Repository-APC-2.002/eg/trimtrees.pl qui fait exactement ce que vous voulez :
Parcourez tous les répertoires nommés sur la
ligne de commande, calculez les sommes de contrôle MD5
et recherchez des fichiers avec un MD5 identique. SI
ils sont égaux, faites une vraie comparaison
s'ils sont vraiment égaux, remplacez le
deuxième des deux fichiers par un lien dur
vers le premier.