Con
diff -r
Puedo hacer esta tarea, sin embargo, lleva mucho tiempo porque diff
comprueba el contenido del archivo.
Quiero algo que determine que dos archivos son iguales en cuanto a su tamaño, última modificación, etc. Pero no verifique el archivo poco a poco (por ejemplo, un video toma mucho tiempo).
¿Hay alguna otra manera?
Respuesta aceptada:
rsync, de forma predeterminada, solo compara metadatos de archivos. eso significa marca de tiempo, tamaño y atributos. entre otros. pero no el contenido de los archivos.
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 la marca de tiempo y los atributos-i
imprimir una línea de información por archivo--delete
también reportar archivos que no están en la fuente
nota:es importante agregar los nombres de los directorios con una barra inclinada. esto es algo de rsync.
puede acortar las opciones de una letra como esta
rsync -nai --delete source/ target/
si también desea ver líneas impresas para archivos que son idénticos, proporcione -i
dos veces
rsync -naii --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)
recuerda que rsync solo compara metadatos. eso significa que si el contenido del archivo cambió pero los metadatos permanecieron iguales, rsync informará que el archivo es el mismo. este es un escenario improbable. así que confíe en que cuando los metadatos son los mismos, entonces 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 que queda por terminar para rsync?