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.)
Réponses:
Il y a les fdupes . Mais j'utilise généralement une combinaison de
find . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36
la source
find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34
(j'ai utilisé uniq -D, et je préfère xargs pour trouver -exec.)xargs
comme celle-ci ne fonctionne pas pour les noms de fichiers avec des blancs,-exec
mais l' utilisation le fait cependant. L'utilisation-type f
comme argument supplémentaire pourfind
(peut être utilisé avec-name
) limite la recherche aux fichiers.Eh bien, il y a FSlint - que je n'ai pas utilisé pour ce cas particulier, mais je devrais pouvoir le gérer: http://en.flossmanuals.net/FSlint/Introduction
la source
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.
la source