Comment supprimer des fichiers en double dans des arborescences de répertoires distinctes?

10

J'ai deux répertoires: old/et new/. Certains fichiers de old/sont des doublons de ceux de new/. Certains ont simplement le même nom, et certains peuvent même avoir un contenu identique mais des noms différents. Je ne suis pas intéressé par le chemin du sous-répertoire vers les fichiers, donc seul un nom de fichier non qualifié doit être pris en compte dans la correspondance.

Je souhaite supprimer les fichiers en double old/afin qu'ils ne contiennent que des fichiers qui ne se trouvent pas également dans new/. Pour les cas où les noms de fichiers correspondent, mais pas le contenu, ou vice-versa, je souhaite que cela soit répertorié dans un journal.

Quelqu'un a-t-il rencontré un problème similaire ou a-t-il une meilleure solution que de pirater un script (perl ou similaire) à partir de zéro? Un runtime dominé par l'appel md5sumà chaque fichier est acceptable.

Écrous en P
la source

Réponses:

7

Bien sûr! Découvrez FSlint :

FSlint est un utilitaire pour rechercher et nettoyer diverses formes de peluches sur un système de fichiers. IE une corruption indésirable ou problématique dans vos fichiers ou noms de fichiers. Par exemple, une forme de charpie qu'il trouve est des fichiers en double. Il a des modes GUI et ligne de commande.

texte alternatif

FSlint est un logiciel gratuit et open source.

John T
la source
Cela semble assez proche de ce que je veux. Merci!
P-Nuts
8

fdupes - trouve les fichiers en double dans un ensemble donné de répertoires

fdupes new/ old/

-d pour supprimer

-N pour ne pas demander

fdupes -N -d new/ old/
Cristian Ciupitu
la source
Cela ne trouvera-t-il pas également (et ne supprimera-t-il pas) les doublons dans chaque répertoire? En d'autres termes, si un nouveau (ou un ancien) contient des fichiers en double qui peuvent ou non être trouvés dans l'ancien, ceux-ci seront également supprimés? Je ne pense pas que fdupes soit strictement un programme différent comme le sous-entendent vos arguments "nouveau" et "ancien".
Stephen Niedzielski