Saltar al contenido

rsync comparar directorios?

Este artículo ha sido probado por nuestros especialistas para garantizar la veracidad de nuestro post.

Solución:

Para agregar a la respuesta de Nils (para cualquiera que encuentre esto a través de Google), de forma predeterminada rsync solo compara los tamaños de archivo y los tiempos de modificación para saber si hay alguna diferencia. (Si son diferentes, hace más, pero si son iguales, se detiene allí).

Si desea comparar el archivo real contenidoincluso para archivos que tienen el mismo tamaño y fecha de última modificación, agregue la bandera -c decir rsync para comparar los archivos utilizando una suma de comprobación.

rsync -avnc $SOURCE $TARGET

(El -u opción le dice a rsync que ignore los archivos que son más nuevos en $TARGET que en $SOURCEque probablemente no desee si está comparando contenidos).

Probablemente tendrás que ejecutar algo como
rsync -avun --delete en ambas direcciones.

Pero, ¿qué estás tratando de lograr en realidad?

Actualizar:

rsync -avun --delete $TARGET $SOURCE |grep "^deleting "

le dará una lista de archivos que no existen en el directorio de destino.

“grep delet” porque cada línea imprime: eliminaring ..archivo..

rsync -avun $SOURCE $TARGET le dará una lista de archivos “diferentes” (incluidos los archivos nuevos).

Solo para aquellos menos familiarizados con rsync:

rsync -rvnc --delete $SOURCE/ $DEST
  • -n : bit más importante — hacer no Cambia cualquier cosa ;
  • -rc : compare solo los contenidos (de lo contrario, use -ac) ;
  • -v : enumerar los archivos)
  • --delete : busque una diferencia simétrica, no unidireccional.
  • Por fin, / significa “mirar dentro del directorio y comparar su contenido al destino”.

Imprimirá un habitual rsync producción,

  • con uno en una línea para cada archivo “nuevo” en $SOURCE
  • y uno “borrando línea para cada archivo “nuevo” en $DEST.

  • También puede imprimir algunas advertencias, como “saltar archivo no regular para enlaces simbólicos.

PD. Sé que es un PS terrible, pero de hecho se agregó rápidamente. Sin embargo, apuesto a que uno puede encontrar esto útil.


PPS. Alternativamente, también se podría hacer

find $SOURCE -type f -exec md5sum  ; | tee source.md5
find $DEST   -type f -exec md5sum  ; | tee dest.md5

Si los nombres de archivo no contienen saltos de línea, podemos ordenar ambos *.md5 archivos, y diff ellos. (Sin embargo, esto solo funcionará para archivos; es decir, no se detectará un directorio vacío en cualquier lado).

Aquí puedes ver las reseñas y valoraciones de los usuarios

Finalizando este artículo puedes encontrar las referencias de otros desarrolladores, tú aún puedes dejar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *