Tengo el directorio a y el directorio b. Ellos son grandes. b es casi idéntico a a. "casi" significa que 4-5 archivos difieren, 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 por b, porque 1) a está controlado por la versión 2) una copia completa (o un mv) tomaría demasiado. Quiero copiar solo los archivos que difieren).
linux
bash
cp
file-transfer
janesconference
fuente
fuente
rsync
una opcion?Respuestas:
Puedes usar
rsync
para hacer esto, el comando que uso esrsync -tr "folder to copy from" "folder to copy to"
p.ej
rsync -tr /home/me/stuff/* /home/me/otherstuff/
fuente
También es posible hacer esto con buenos viejos
cp
:¡Gracias a srcspider por recordarme que use
-T
!cp -ruT old-dir new-dir
fuente
Otra buena opción es Unison ( http://www.cis.upenn.edu/~bcpierce/unison/ ), particularmente si realmente no hay una "fuente" y un "destino". Cada directorio es una raíz y Unison los sincroniza y mantiene los metadatos para futuras sincronizaciones. Ofrece tanto una línea de comandos como una opción de GUI que también se puede programar fácilmente a través de 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.
fuente
Se PUEDE hacer con buen ol 'cp, aunque con un formato ligeramente diferente al indicado anteriormente. Así es como lo hice:
fuente
Puede diferenciar los 2 directorios.
diff -r dir1 dir2
le mostrará la lista de archivos que se diferencian
fuente