web-dev-qa-db-fra.com

Comment trouver (et supprimer) les fichiers en double

J'ai une grande collection de musique et il y a quelques copies. Est-il possible de trouver des fichiers en double? Au minimum, faites un hachage et voyez si deux fichiers ont le même hachage.

Des points bonus pour la recherche de fichiers portant le même nom en plus de l’extension - je pense avoir des chansons avec les versions au format mp3 et ogg.

Je suis heureux d'utiliser la ligne de commande si c'est le moyen le plus simple.

123
Hamish Downer

J'utilise fdupes pour cela. C'est un programme en ligne de commande qui peut être installé à partir des référentiels avec Sudo apt install fdupes. Vous pouvez l'appeler comme suit: fdupes -r /dir/ect/ory et une liste de dupes sera imprimée. fdupes a aussi un simple page d'accueil et un article Wikipedia , qui répertorie quelques programmes supplémentaires.

133
qbi

FSlint a une interface graphique et quelques autres fonctionnalités. L'explication de l'algorithme de vérification des doublons de leur FAQ:

1. exclude files with unique lengths
2. handle files that are hardlinked to each other
3. exclude files with unique md5(first_4k(file))
4. exclude files with unique md5(whole file)
5. exclude files with unique sha1(whole file) (in case of md5 collisions).

fslintInstall fslint

60
Dominik

Liste de programs/scripts/bash-solutions, pouvant rechercher des doublons et s'exécuter sous nix:

  1. dupedit: Compare plusieurs fichiers à la fois sans checksum. Évite de comparer des fichiers avec eux-mêmes lorsque plusieurs chemins pointent vers le même fichier.
  2. dupmerge: fonctionne sur diverses plateformes (Win32/64 avec Cygwin, * nix, Linux, etc.)
  3. dupseek: Perl avec algorithme optimisé pour réduire les lectures.
  4. fdf: basé sur Perl/c et fonctionnant sur la plupart des plateformes (Win32, * nix et probablement d’autres). Utilise MD5, SHA1 et d'autres algorithmes de somme de contrôle
  5. freedups: Script shell, qui recherche dans les répertoires que vous spécifiez. Lorsqu'il trouve deux fichiers identiques, il les lie ensemble. Maintenant, les deux fichiers ou plus existent toujours dans leurs répertoires respectifs, mais une seule copie des données est stockée sur le disque; les deux entrées du répertoire pointent sur les mêmes blocs de données.
  6. fslint: possède une interface de ligne de commande et une interface graphique.
  7. liten: Pure Python outil de ligne de commande de déduplication, et bibliothèque, à l'aide de la somme de contrôle md5 et d'un nouvel octet algorithme de comparaison. (Linux, Mac OS X, * nix, Windows)
  8. liten2: Réécriture du liten d'origine, toujours un outil de ligne de commande mais avec un mode interactif plus rapide utilisant les sommes de contrôle SHA-1. (Linux, Mac OS X, * nix)
  9. rdfind: L'un des rares qui classe les doublons en fonction de l'ordre des paramètres d'entrée (répertoires à analyser) afin de ne pas supprimer dans les sources "originales/bien connues" (si plusieurs répertoires sont donnés). Utilise MD5 ou SHA1.
  10. rmlint: Fast Finder avec une interface en ligne de commande et de nombreuses options pour rechercher d'autres peluches (utilise MD5)
  11. a: Outil de ligne de commande Unix/Linux, conçu pour fonctionner avec find (et autres).
  12. findrepe: outil de ligne de commande Java gratuit conçu pour une recherche efficace des fichiers en double. Il peut effectuer une recherche dans les zips et jars (GNU/Linux, Mac OS X, * nix, Windows)
  13. fdupe: un petit script écrit en Perl. Faire son travail rapidement et efficacement . 1
  14. ssdeep: identifie les fichiers presque identiques à l'aide du hachage par fragmentation déclenché par contexte
55
v2r

Si votre tâche de déduplication est liée à la musique, exécutez tout d'abord l'application picard pour identifier et marquer correctement votre musique (afin de rechercher les fichiers .mp3/.ogg en double, même si leur nom est incorrect). Notez que picard est également disponible sous forme de paquet Ubuntu.

Cela fait, en vous basant sur la balise musicip_puid, vous pourrez facilement retrouver tous vos morceaux dupliqués.

6
ΤΖΩΤΖΙΟΥ

Un autre script qui effectue ce travail est rmdupe . De la page de l'auteur:

rmdupe utilise les commandes linux standard pour rechercher les fichiers en double dans les dossiers spécifiés, quel que soit le nom du fichier ou son extension. Avant que les candidats en double ne soient supprimés, ils sont comparés octet par octet. rmdupe peut également vérifier les doublons par rapport à un ou plusieurs dossiers de référence, peut supprimer des fichiers au lieu de les supprimer, permet une commande de suppression personnalisée et peut limiter sa recherche aux fichiers de la taille spécifiée. rmdupe inclut un mode de simulation qui indique ce qui sera fait pour une commande donnée sans supprimer aucun fichier.

4
girardengo

As-tu essayé

finddup

ou

finddup -l

Je suppose que cela fonctionne bien.

3
xerostomus

Pour les doublons liés à la musique, l’identification et la suppression de Picard et Jaikoz par http://musicbrainz.org/ est la meilleure solution. Je crois que Jaikoz marque automatiquement votre musique en fonction des données du fichier de la chanson. Vous n'avez même pas besoin du nom de la chanson pour l'identifier et lui attribuer toutes les métadonnées. Bien que la version gratuite ne puisse étiqueter qu'un nombre limité de chansons en une fois, vous pouvez toutefois l'exécuter autant de fois que vous le souhaitez.

2
Yathi

J'utilise komparator - Sudo apt-get install komparator ( buntu 10.04 + ) - en tant qu'outil graphique pour rechercher des doublons en mode manuel.

2
N0rbert