Rubén, parte de nuestro equipo, nos ha hecho el favor de redactar este artículo porque domina muy bien el tema.
Solución:
Usar rsync
. Sincronizará los directorios en una dirección. Por lo tanto, si desea actualizar su old
carpeta con todo, desde new
pero mantén lo que hay allí, solo usa:
rsync -avh --dry-run /path/to/new/ /path/to/old/
Esto, en una primera instancia, solo generará la lista de archivos que se transferirán. En ese caso: Todo lo que se encuentre en new
será copiado a old
, a menos que ya esté allí. Todo en old
se queda como está.
Si te parece bien, quita el --dry-run
argumento para transmitirlos de verdad.
los -avh
las banderas solo habilitan el modo de archivo (que conservará las marcas de tiempo, etc.), la verbosidad y los tamaños de archivo legibles por humanos. No se eliminará nada del destino a menos que especifique el --delete
bandera. Consultar man rsync
para más información.
rsync probablemente sería una mejor opción aquí. Es tan simple como rsync -a subdir/ ./. verifique esta respuesta de unix.stackexchage para obtener mejores soluciones
usar -f
con el cp
dominio
cp -fR /source/files /dest
suprimir cp para sobrescribir” indicador ..
Para anular el alias de cp, simplemente puede encerrarlo entre comillas:
'cp' -rf ./source/* /destination/
para más información sigue estos enlaces:
http://www.wallpaperama.com/forums/cp-command-problems-forcing-overwrite-using-cp-command-t5685.html
http://bytes.com/topic/unix/answers/865372-force-cp-overwrite-existing-directory