¿Cómo puedo eliminar archivos duplicados en árboles de directorios separados?


10

Tengo dos directorios: old/y new/. Algunos de los archivos en old/son duplicados de aquellos en new/. Algunos simplemente tienen el mismo nombre, y algunos incluso pueden tener contenido idéntico pero nombres diferentes. No estoy interesado en la ruta del subdirectorio a los archivos, por lo que solo un nombre de archivo no calificado debe considerarse en la coincidencia.

Quiero eliminar los archivos duplicados old/, para que solo contenga archivos que no se encuentran también en new/. Para los casos en que los nombres de archivo coinciden, pero no los contenidos, o viceversa, quiero que esto aparezca en algún registro.

¿Alguien ha encontrado un problema similar o tiene una solución mejor que hackear un script (perl o similar) desde cero? Un tiempo de ejecución dominado por la invocación md5sumde cada archivo es aceptable.

Respuestas:


7

¡Por supuesto! Echa un vistazo a FSlint :

FSlint es una utilidad para buscar y limpiar varias formas de pelusa en un sistema de archivos. IE cruft no deseado o problemático en sus archivos o nombres de archivo. Por ejemplo, una forma de pelusa que encuentra es archivos duplicados. Tiene modos GUI y línea de comandos.

texto alternativo

FSlint es un software gratuito y de código abierto.


Eso se ve lo suficientemente cerca para lo que quiero. ¡Gracias!
— P-Nuts

8

fdupes : encuentra archivos duplicados en un conjunto dado de directorios

fdupes new/ old/

-d para borrar

-N para no preguntar

fdupes -N -d new/ old/

¿Esto también no encontrará (y eliminará) duplicados dentro de cada directorio? En otras palabras, si los archivos nuevos (o antiguos) contienen archivos duplicados que pueden o no encontrarse dentro de los antiguos, ¿también se eliminarían? No creo que fdupes sea estrictamente un programa diferente como lo implican sus argumentos "nuevo" y "viejo".
— Stephen Niedzielski el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.