19 votos

Copiar sólo los archivos nuevos: ¿es posible? Básicamente quiero fusionar dos carpetas

Tengo una carpeta en la unidad 1 llamada Música, y tiene 100GB. Tengo una carpeta en la Unidad 2 llamada Música, y tiene 116GB. Es la versión más actualizada. ¿Cómo puedo copiar la carpeta Music de la Unidad 2 a la Unidad 1 sin tener que reescribir cada archivo?

0 votos

¿Qué versión de OS X utilizas?

1 votos

Estoy usando 10.7.4. Cuando copio la carpeta de una unidad a la otra, se me pregunta si quiero reemplazar. No hay opción de fusión.

36voto

John D. Puntos 143

Este es un caso de uso clásico para rsync:

rsync -av /source-path/source-dir /destination-path

rsync copiará sólo los archivos nuevos y modificados a la nueva ubicación.

Es importante entender cómo funciona una barra diagonal final en el argumento fuente. Si hay una barra al final, el contenido de /ruta-fuente/directorio-fuente se copiará en ruta de destino . Si no hay una barra al final, entonces source-dir se copiará en el destino y su contenido estará un nivel más abajo en la jerarquía de destino.

Por lo tanto, si desea replicar una ruta a otra, incluya la barra diagonal final de la siguiente manera:

rsync -av /sourcepath/sourcedir/ /duplicatpath/sourcedir/

1 votos

¡Grandioso! Y si usted está haciendo esto desde múltiples unidades (o en cualquier lugar en su computadora) y no quiere escribir los directorios sólo puede arrastrar una unidad (usb externa, o cápsula del tiempo) o sólo un directorio específico y hacer que se añada al comando para usted. Sólo tienes que arrastrar la ubicación de destino en el terminal

0 votos

Tío, muchas gracias por sugerir la barra diagonal final. Me he pasado la vida pensando por qué rsync -av ./foo/bar /vol1/foo/bar copiaba todos los archivos existentes. ¡¡¡Malditas barras diagonales!!!

5voto

Andre Puntos 11

La opción de fusión sólo aparecerá si está copiando (en lugar de moviendo) la carpeta. Asegúrese de mantener pulsado option mientras arrastras la nueva carpeta a la ubicación de la antigua. Alternativamente, utilizando + c para copiar la nueva carpeta y + v para pegar sobre la carpeta antigua debería darte la opción de fusionar los archivos.

0 votos

Esto todavía parece escribir sobre los archivos que no necesitan ser reescritos. Usando rsync en cambio

0 votos

Incluso si la opción de fusionar está disponible, a veces no funciona (sólo informa de un error y no hace nada) - especialmente en caso de carpetas grandes como en su caso. Es otra razón por la que deberías usar rsync.

5voto

SideOfBacon Puntos 291

ACTUALIZACIÓN

Primero instala coreutils. Ejecute brew install coreutils . Si no tiene brew instalado... ¡vuelve a cambiar a Windows!

Compruebe que cp --version versión de salidas cp (GNU coreutils) 8.^^

Entonces, tendrá el cp y la versión -u funcionará.


Compruebe el cp de mando. Utilice man cp y leer las opciones. Puedes hacer algo como:

cp -r -u ~/source ~/destination

-R, -r , --recursive : copia los directorios de forma recursiva
-u , --update : copia sólo cuando el archivo SOURCE es más reciente que el archivo de destino o cuando falta el archivo de destino
-p igual que --preserve=mode,ownership,timestamps
-v --verbose : explica lo que se está haciendo

Así que si quieres copiar archivos de tu Descargas/música carpeta para decir su Música/nueva carpeta que haría algo como:
*`cp -ruvp ~/Downloads/music/ ~/Music/new/`**
Esto fusionaría el contenido de estas dos carpetas y, si existen dos archivos con el mismo nombre y ruta, se quedaría con el más reciente basándose en la marca de tiempo.

1 votos

¿Estás seguro de que la opción -u funciona con el comando cp en OSX? Estoy recibiendo el mensaje "cp: opción ilegal -- u" en Sierra. Parece que no todos los comandos son iguales que en Linux.

0 votos

Pruebe el comando cp --help y vea si la opción está disponible. O compruebe el cp --version y asegúrese de que está actualizado. Estoy usando : cp (GNU coreutils) 8.27

1 votos

Lamentablemente, -u no es una bandera válida para cp en OS X. ¡Sería muy conveniente tenerla!

0voto

Powerlord Puntos 341

No estoy seguro de por qué el botón de fusión de Lion por defecto no me aparece. Pero terminé usando ditto . Se encuentra aquí: https://superuser.com/a/221599/102789

2 votos

Tenga cuidado! ditto no guarda los archivos más nuevos, siempre sobrescribe el destino con el origen. Si el archivo de origen es más antiguo, eliminará el nuevo archivo y lo reemplazará por el más antiguo.

0 votos

Así es - advertencia muy importante de FrancescoMM, utilice rsync

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X