Pregunta:
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 comando … (He estudiado diff y rsync, pero todavía 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 normales 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 a 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 el proceso demasiado lento).
-
¿Cómo hacer una copia exacta de la carpeta A en la carpeta B? Quiero decir, copie todo de la carpeta A a la carpeta B que existe solo en la carpeta A y elimine todo de la carpeta B que existe solo en la carpeta B, pero sin tocar los archivos que son iguales en ambas carpetas.
Respuesta:
Esto coloca la carpeta A en la carpeta B:
rsync -avu --delete "/home/user/A" "/home/user/B"
Si desea que el contenido de las carpetas A y B sea el mismo, coloque /home/user/A/
(con la barra) 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
Realiza la sincronización conservando todos los atributos del sistema de archivos-
-v
ejecuta prolijamente -
-u
solo copia archivos con una hora de modificación más reciente (o diferencia de tamaño si las horas son iguales) -
--delete
eliminar eliminar 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