Solución:
Este es un caso de uso clásico de rsync:
rsync -av /source-path/source-dir /destination-path
rsync copiará solo los archivos nuevos y modificados a la nueva ubicación.
Es importante comprender cómo funciona una barra diagonal en el argumento fuente. Si hay una barra al final, el contenido de / ruta-fuente / dir-fuente será copiado a ruta de destino. Si no hay una barra al final, entonces dir-fuente sí mismo se copiará en el destino y su contenido será otro nivel en la jerarquía de destino.
Entonces, si desea replicar una ruta a otra, incluya la barra diagonal de la siguiente manera:
rsync -av /sourcepath/sourcedir/ /duplicatpath/sourcedir/
La opción de combinación solo aparecerá si está copiando (en lugar de mover) la carpeta. Asegúrate de sostener opción mientras arrastra la carpeta nueva a la ubicación de la carpeta anterior. Alternativamente, usando ⌘+C para copiar la nueva carpeta y ⌘+v pegar sobre la carpeta anterior debería darle la opción de fusionar los archivos.
ACTUALIZAR
Primero instale coreutils primero. Correr brew install coreutils
. Si no tienes brew
instalado … volver a Windows!
Mira esto cp --version
versión de salidas cp (GNU coreutils) 8. ^^
Entonces tendrás la correcta cp
versión y la -u
la bandera funcionará.
Comprobar el cp
mando. Usar man cp
y lea las opciones. Puedes hacer algo como:
cp -r -u ~/source ~/destination
-R, -r, –recursive: copia directorios de forma recursiva
-u, –update: copiar solo cuando el archivo SOURCE es más reciente que el archivo de destino o cuando falta el archivo de destino
-pag igual que –preserve = modo, propiedad, marcas de tiempo
-v –verbose: explica lo que se está haciendo
Entonces, si quieres copiar archivos tuyos Descargas / música carpeta para decir tu Música / nuevo carpeta harías algo como:
cp -ruvp ~/Downloads/music/* ~/Music/new/
Esto combinaría el contenido de estas dos carpetas y, si existen dos archivos con el mismo nombre y ruta, se mantendría el más nuevo según la marca de tiempo.