2012-04-10 14 views
21

Estoy escribiendo un script bash, y me gustaría saber qué archivos son iguales en dos árboles de directorios.dado dos árboles de directorios ¿cómo encontrar qué archivos son los mismos?

Sería lo contrario de usar diff.

Bueno, yo encontré la respuesta yo mismo. Lo había intentado antes, pero pensé que no funcionó.

diff -srq dir1/ dir2/ | grep identical 
+4

Por lo que la aplicación de 'same'? ¿Nombre? ¿Inode? ¿Tamaño? ¿Contenido? Mod Time? ¿Propietario? ¿Grupo? Permisos? – MattH

+0

Publique sus hallazgos como una respuesta – KurzedMetal

Respuesta

27

Bueno, yo encontré la respuesta yo mismo. Lo había intentado antes, pero pensé que no funcionó.

diff -srq dir1/ dir2/ | grep identical 

Lo -srq medios? De diff --help:

-s --report-identical-files Report when two files are the same. 
-r --recursive Recursively compare any subdirectories found. 
-q --brief Output only whether files differ. 
9

Puede utilizar una utilidad como fdupes o rdfind para listar los archivos duplicados. Por ejemplo:

fdupes --recurse dir1 dir2 

También puede ser que desee utilizar la bandera --sameline para listar todos los duplicados en la misma línea, en lugar de en los bloques de texto, dependiendo de cómo se desea analizar los resultados.

+0

Esta técnica también detecta archivos idénticos con diferentes nombres. No estoy seguro de si diff puede ser ajustado para hacer lo mismo – Giuseppe

Cuestiones relacionadas