rsync, por defecto, compara solo los metadatos del archivo.
rsync -n -a -i --delete source/ target/
explicación:
-n
en realidad no copie ni elimine <- ¡ESTO ES IMPORTANTE! 1
-a
compare todos los metadatos del archivo como marca de tiempo y atributos
-i
imprimir una línea de información por archivo
--delete
también reporta archivos que no están en la fuente
nota: es importante agregar los nombres de directorio con una barra inclinada. Esto es una cosa rsync.
si también desea ver líneas impresas para archivos que son idénticos, proporcione -i
dos veces
rsync -n -a -ii --delete source/ target/
salida de ejemplo:
*deleting removedfile (file in target but not in source)
.d..t...... ./ (directory with different timestamp)
>f.st...... modifiedfile (file with different size and timestamp)
>f+++++++++ newfile (file in source but not in target)
.f samefile (file that has same metadata. only with -ii)
recuerde que rsync solo compara metadatos. eso significa que si el contenido del archivo cambió pero los metadatos se mantuvieron igual, rsync informará que el archivo es el mismo. Este es un escenario poco probable. por lo tanto, confíe en que cuando los metadatos son los mismos, los datos son los mismos, o tiene que comparar los datos del archivo poco a poco.
bonificación: para obtener información sobre el progreso, consulte aquí: ¿ Tiempo estimado o trabajo restante para terminar para rsync?
source/
ytarget/
también son muy importantes! (Sin ellos, comparará los nombres de los directorios de origen y destino junto con los nombres de los archivos secundarios, por lo que todos los nombres de los archivos serán diferentes)*deleting
, pero los archivos que están en la fuente solo aparecían. Las barras son fáciles de olvidar accidentalmente y luego obtienes una salida plausible pero incorrecta.Usar la
-q
(--brief
opción) condiff -r
(diff -qr
). Desde lainfo
página de GNUdiff
:Esto no comparará línea por línea, sino más bien el archivo en su conjunto, lo que acelera enormemente el procesador (lo que está buscando).
fuente
Aquí hay un script rápido de Python que verificará que los nombres de archivo, mtimes y los tamaños de archivo sean todos iguales:
fuente
Si solo necesita saber si los archivos de dos ramas del sistema de archivos son diferentes (sin mirar dentro de los archivos), puede hacer algo como esto:
HTH
fuente
Basado en el guión de Chris Down, este guión es un poco más "visual". Llamándola con dos argumentos
folder1
yfolder2
, camina la primera carpeta y para cada archivo busca un archivo correspondiente en la segunda carpeta. Si se encuentra, la ruta relativa se imprime en verde, si tienen un tiempo o tamaño modificado diferente, se imprime en amarillo y, si no se encuentra, se imprime en rojo.Tenga en cuenta que esto no es suficiente para decidir si las dos carpetas son iguales, deberá ejecutarlo en ambos sentidos para asegurarse. En la práctica, si solo quieres saber si las carpetas son iguales , entonces el script de Chris es mejor. Si desea saber lo que falta o es diferente de una carpeta a otra , entonces mi script le dirá.
NOTA: necesitará instalado termcolor,
pip install termcolor
.fuente
Si desea comparar solo una estructura y alguna información básica sobre los archivos, puede probar algo como esto:
No lo probé, así que cualquier edición es bienvenida :)
fuente
<()
tiene su propio entorno. Editado