GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿cómo sincronizar dos carpetas con herramientas de línea de comandos?

Habiendo migrado a Linux desde Windows, me gustaría encontrar un software alternativo a Winmerge o más bien aprender herramientas de línea de comandos para comparar y sincronizar dos carpetas en Linux. Le agradecería que me dijera cómo realizar las siguientes tareas en la línea de comandos... (he estudiado diff y rsync, pero aún necesito ayuda).

Tenemos dos carpetas:“/home/user/A” y “/home/user/B”

La carpeta A es el lugar donde se guardan los archivos y carpetas regulares y la carpeta B es una carpeta de respaldo que sirve como un espejo completo de la carpeta A. (El usuario no guarda ni modifica nada directamente en la carpeta B).

Mis preguntas son:

  • ¿Cómo enumerar los archivos que existen solo en la carpeta B? (Por ejemplo, los eliminados de la carpeta A desde la última sincronización).

  • ¿Cómo copiar archivos que existen solo en la carpeta B de nuevo en la carpeta A?

  • ¿Cómo enumerar los archivos que existen en ambas carpetas pero que tienen marcas de tiempo o tamaños diferentes? (Los que se han modificado en la carpeta A desde la última sincronización. Me gustaría evitar el uso de sumas de comprobación, porque hay decenas de miles de archivos y haría que el proceso fuera demasiado lento).

  • ¿Cómo hacer una copia exacta de la carpeta A en la carpeta B? Es decir, copia todo lo que esté de la carpeta A en la carpeta B que existe solo en la carpeta A y elimina todo lo que esté en la carpeta B de la carpeta B, pero sin tocar los archivos que son iguales en ambas carpetas.

Respuesta aceptada:

Esto coloca la carpeta A en la carpeta B:

rsync -avu --delete "/home/user/A" "/home/user/B"  

Si desea el contenido de las carpetas A y B para ser lo mismo, pon /home/user/A/ (con la barra oblicua) como fuente. Esto no toma la carpeta A sino todo su contenido y lo coloca en la carpeta B. Así:

rsync -avu --delete "/home/user/A/" "/home/user/B"
  • -a Realice la sincronización conservando todos los atributos del sistema de archivos
  • -v ejecutar detalladamente
  • -u solo copie archivos con un tiempo de modificación más reciente (o diferencia de tamaño si los tiempos son iguales)
  • --delete elimine los archivos en la carpeta de destino que no existen en la fuente

Página de manual:https://download.samba.org/pub/rsync/rsync.html


Linux
  1. Cómo reiniciar Linux usando la línea de comandos

  2. Cómo eliminar archivos con una extensión específica en la línea de comandos de Linux

  3. ¿Cómo convertir un PDF a JPG con línea de comando en Linux?

  4. ¿Cómo convierto un documento DjVu a PDF en Linux usando solo herramientas de línea de comandos?

  5. ¿Cómo sincronizar dos carpetas con herramientas de línea de comandos?

Eliminar directorio en Linux:cómo eliminar una carpeta desde la línea de comandos

Cómo comprobar la versión del sistema operativo con la línea de comandos de Linux

Cómo instalar Dig en Linux con ejemplos de línea de comandos

Cómo comprimir una carpeta en Linux

Cómo encontrar la dirección IP en la línea de comandos de Linux

Cómo monitorear el estado del servidor Linux con herramientas de línea de comandos