Tengo el directorio a y el directorio b. Ellos son grandes. b es casi idéntico a a. "casi" significa que hay 4 o 5 archivos diferentes y no sé cuáles son. Quiero copiar b sobre a, pero solo los archivos que difieren. Estoy en fiesta.
(no, no puedo simplemente eliminar a y reemplazarlo con b, porque 1) a está controlado por versión 2) una copia completa (o un mv) tomaría demasiado. Quiero copiar sólo los archivos que difieren).
Respuesta1
Puedes usar rsync
para hacer esto, el comando que uso esrsync -tr "folder to copy from" "folder to copy to"
p.ejrsync -tr /home/me/stuff/* /home/me/otherstuff/
Respuesta2
También es posible hacer esto con el viejo cp
:
¡Gracias a srcspider por recordarme que lo use -T
!
cp -ruT old-dir new-dir
Respuesta3
Otra buena opción es Unison (http://www.cis.upenn.edu/~bcpierce/unison/), especialmente si no existe realmente una "fuente" y un "destino". Cada directorio es una raíz y Unison los sincroniza y conserva los metadatos para futuras sincronizaciones. Ofrece una opción de línea de comandos y GUI que también se puede programar fácilmente mediante cron.
Lo uso para hacer una copia de seguridad de mi Dropbox en mi dispositivo NAS local que no puede ejecutar un cliente de Dropbox.
Respuesta4
Puede diferenciar los 2 directorios.
diferencia -r dir1 dir2
le mostrará la lista de archivos que son diferentes