Question Comment trouver (et supprimer) des fichiers en double


J'ai une grande collection de musique et il y a des doublons. Est-il possible de trouver des fichiers en double? Au minimum, en faisant un hachage et en vérifiant si deux fichiers ont le même hachage.

Points bonus pour trouver également des fichiers portant le même nom en dehors de l'extension - Je pense que j'ai des morceaux avec des versions au format mp3 et ogg.

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


121
2017-09-08 19:11


origine




Réponses:


j'utilise fdupes pour ça. 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 fdupes -r /dir/ect/ory et il imprimera une liste de dupes. fdupes a aussi un simple page d'accueil et un Article de Wikipedia, qui répertorie d'autres programmes.


128
2017-09-08 19:20



Il a également une option "-d" qui vous permet de choisir la copie que vous souhaitez conserver et de supprimer les autres (ou vous pouvez les conserver toutes si vous le souhaitez). - Matthew Crumley
Comment puis-je utiliser l'option -d pour résoudre mon problème ici - John McKean Pruitt
Est-il possible pour fdupes de lister des dossiers en double plutôt que des fichiers en double? - Anderson Green
Pouvez-vous expliquer plus en détail comment supprimer tous les doublons (ne laisser qu'une seule copie de chaque fichier) dans une arborescence récursive? Je veux le faire automatiquement, c'est-à-dire sans avoir à spécifier à chaque fois quel fichier conserver. Il suffit de sélectionner l'un des doublons. - becko
fdupes -r . -d -N devrait enregistrer la première instance et supprimer les dupes. J'ai juste réussi à effacer un seul dossier en utilisant fdupes . -d -N non récursivement - Simon B


FSlint a une interface graphique et d'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).

fslint  Install fslint


58
2017-09-08 19:31



Merci. Notez que le nom de la commande est "fslint-gui", et que les outils de ligne de commande ne sont pas dans $ PATH par défaut - ils sont dans / usr / share / fslint / fslint. J'étais confus quand je n'ai pas eu d'aide sur quel paquet il était en exécutant juste fslint (via / usr / lib / command-not-found). - nealmcb
exactement ce qui est nécessaire - Tebe
@nealmcb Si vous utilisez sudo apt-get install fslint, l'installation met actuellement fslint-gui dans le chemin et donc je peux l'exécuter de n'importe où en tapant simplement fslint-gui. Vous pouvez trouver où fslint-gui vit en tapant which fslint-gui (il ressemble à un script Python). - user29020


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

  1. dupedit: Compare beaucoup de fichiers à la fois sans effectuer de contrôle. Évite de comparer des fichiers avec eux-mêmes lorsque plusieurs chemins d'accès pointent vers le même fichier.
  2. dupmerge: fonctionne sur différentes plates-formes (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 s'exécute sur la plupart des plates-formes (Win32, * nix et probablement d'autres). Utilise MD5, SHA1 et d'autres algorithmes de somme de contrôle
  5. libéré: script shell, qui recherche dans les répertoires que vous spécifiez. Lorsqu'il trouve deux fichiers identiques, il est difficile de les relier. 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 de répertoire pointent vers les mêmes blocs de données.
  6. fslint: possède une interface de ligne de commande et une interface graphique.
  7. liten: Outil de ligne de commande de déduplication Python pur et bibliothèque, utilisant les sommes de contrôle md5 et un nouvel algorithme de comparaison d'octets. (Linux, Mac OS X, * nix, Windows)
  8. liten2: Une réécriture du Liten original, toujours un outil en ligne de commande mais avec un mode interactif plus rapide utilisant des sommes de contrôle SHA-1 (Linux, Mac OS X, * nix)
  9. rdfind: Un des rares qui classent les doublons en fonction de l'ordre des paramètres d'entrée (répertoires à analyser) afin de ne pas les supprimer dans des sources "originales / connues" (si plusieurs répertoires sont donnés). Utilise MD5 ou SHA1.
  10. rmlint: Finder rapide avec interface de ligne de commande et de nombreuses options pour trouver d'autres fibres (utilise MD5)
  11. ua: 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 des recherches dans des zips et des fichiers JAR (GNU / Linux, Mac OS X, * nix, Windows)
  13. fdupe: un petit script écrit en Perl. Faire son travail rapidement et efficacement.1
  14. ssdeep: identifier des fichiers presque identiques à l'aide du hachage par morceaux déclenché par le contexte

48
2018-04-03 01:22



Certains de ces programmes sont-ils en mesure de trouver des dossiers en double (pas seulement des fichiers en double?) - Anderson Green
@AndersonGreen rmlint peut trouver des répertoires en double. rmlint -T dd - oligofren
pour Ubuntu, une autre méthode consiste à ouvrir les fichiers, à rechercher (control-f) une extension donnée (par exemple .mp3), puis à trier le nom du fichier; Cela permettra de supprimer les doublons à la main et, en même temps, afficher les emplacements des doublons. - axd


Si votre tâche de déduplication est liée à la musique, lancez d'abord le picard application pour identifier et marquer correctement votre musique (de sorte que vous trouviez des fichiers .mp3 / .ogg en double, même si leurs noms sont incorrects). Notez que picard est également disponible en tant que package Ubuntu.

Cela fait, basé sur le musicip_puid tag vous pouvez facilement trouver toutes vos chansons en double.


6
2017-09-08 21:46





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

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


4
2018-04-22 07:34





As-tu essayé

finddup

ou

finddup -l

Je suppose que ça marche bien.


3
2017-07-05 04:34





Pour la musique liée à l'identification et à la suppression des doublons Picard et Jaikoz by http://musicbrainz.org/ est la meilleure solution. Jaikoz, je crois, 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 identifier la chanson et lui attribuer toutes les métadonnées. Bien que la version gratuite ne puisse marquer qu'un nombre limité de chansons en une seule fois, vous pouvez l'exécuter autant de fois que vous le souhaitez.


2
2018-04-22 07:47





j'utilise Komparator - sudo apt-get install komparator (Ubuntu 10.04+ ) - comme outil graphique pour trouver des doublons en mode manuel.


2
2017-12-29 12:15