Je souhaite générer une liste de fichiers contenant:
- Même nom
- Contenu différent
dans un répertoire (y compris tous les répertoires et contenus enfants).
Comment faire? Bash, perl, tout va bien.
Ainsi, deux fichiers avec le même nom et le même contenu ne devraient pas apparaître.
Réponses:
Mise à jour: correction d'une faute de frappe dans le script: changé
print $NF
enprint $3
; a également rangé les choses et ajouté quelques commentaires.En supposant que les noms de fichiers ne contiennent pas
\n
, ce qui suit imprime une liste triée qui se casse (comme dans: coupures de contrôle de section ) à uniquefile name
, uniquemd5sum
et affiche le groupe correspondant de chemins de fichier.Sortie affichant uniquement les noms de fichiers avec plusieurs
md5
sSortie affichant tous les fichiers du même nom.
la source
Voici un script Perl. Exécutez-le dans le répertoire en haut de l'arborescence que vous souhaitez rechercher. Le script dépend de
find
etmd5
, mais ce dernier peut être remplacé parsha1
,sum
ou tout autre programme de hachage de fichier qui accepte une entrée sur stdin et génère un hachage sur stdout.la source
finddup cet outil peut également vous aider à répertorier les fichiers portant le même nom ou le même contenu.
la source
Pour ceux qui veulent voir seulement une liste de noms, voici la partie pertinente de Peter.O de réponse :
} '
Je n'ai pas besoin de md5sums car j'utilise
fslint-gui
avant le script pour effacer tous les doublons.la source