Des outils Linux pour trouver des fichiers en double?


13

J'ai un ensemble grand et croissant de fichiers texte, qui sont tous assez petits (moins de 100 octets). Je veux différencier chaque paire de fichiers possible et noter quels sont les doublons. Je pourrais écrire un script Python pour ce faire, mais je me demande s'il existe un outil de ligne de commande Linux existant (ou peut-être une simple combinaison d'outils) qui ferait cela?

Mise à jour (en réponse au commentaire de mfinni ): Les fichiers sont tous dans un seul répertoire, donc ils ont tous des noms de fichiers différents. (Mais ils ont tous une extension de nom de fichier en commun, ce qui facilite leur sélection avec un caractère générique.)


Je suppose que les noms de fichiers ne sont pas des doublons, seulement le contenu?
mfinni

pixelbeat.org/fslint si vous recherchez le contenu ci-dessus le lien peut vous y aider. :)
Rajat

Réponses:


22

Il y a les fdupes . Mais j'utilise généralement une combinaison defind . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36


1
Cette variation a fonctionné pour moi: find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34 (j'ai utilisé uniq -D, et je préfère xargs pour trouver -exec.)
Daryl Spitzer

+1 Je n'étais pas au courant des fdupes, cet outil semble très utile.
Zoredache

3
@Daryl: Une utilisation xargscomme celle-ci ne fonctionne pas pour les noms de fichiers avec des blancs, -execmais l' utilisation le fait cependant. L'utilisation -type fcomme argument supplémentaire pour find(peut être utilisé avec -name) limite la recherche aux fichiers.
fuenfundachtzig

+1 pour fdupes, car il est également rapide pour les énormes fichiers binaires.
Bengt

À de rares occasions, j'ai eu des xargs qui ne fonctionnaient pas (se bloquant après une certaine quantité de fichiers traités) mais pas trouvé -exec qui se réveillait tout le temps. @fuenfundachtzig, on peut utiliser xargs -0 --delimiter = "\ n" pour gérer ce type de fichiers.
ychaouche


3

Vous ne voulez certainement pas différencier chaque paire de fichiers. Vous voudrez probablement utiliser quelque chose comme md5sums pour obtenir toutes les sommes de contrôle de tous les fichiers et les diriger vers un autre outil qui ne fera que rapporter des sommes de contrôle en double.


2
Vous pouvez réduire le nombre de md5sums calculé en calculant uniquement les md5sums pour les fichiers d'une taille pour laquelle il existe plusieurs fichiers de cette taille. Donc, pour tous les fichiers d'une taille unique en octets, vous n'avez pas besoin d'une somme md5, car ils ne peuvent pas être des doublons de quoi que ce soit.
tomsv
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.