Copie solo archivos nuevos, ¿es esto posible? Básicamente quiero fusionar dos carpetas


14

Tengo una carpeta en la Unidad 1 llamada Música, y es de 100 GB. Tengo una carpeta en la Unidad 2 llamada Música, y es de 116 GB. Es la versión más actualizada. ¿Cómo copio la carpeta Música de la Unidad 2 a la Unidad 1 sin tener que volver a escribir cada archivo?


¿Qué versión de OS X estás usando?
— Nix

1
Estoy usando 10.7.4. Cuando copio la carpeta de una unidad a otra, me preguntan si quiero reemplazarla. Sin opción de fusión.
— dallen

Respuestas:


5

La opción de combinación solo aparecerá si está copiando (en lugar de mover) la carpeta. Asegúrese de mantener presionada optionmientras arrastra la nueva carpeta a la ubicación de la carpeta anterior. Alternativamente, usar ⌘+ cpara copiar la nueva carpeta y ⌘+ vpara pegar sobre la carpeta anterior debería darle la opción de fusionar los archivos.


Esto todavía parece escribir sobre archivos que no necesitan ser reescritos. Usando en su rsynclugar
— BRogers

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

24

Este es un caso de uso clásico para 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 inclinada final en el argumento fuente. Si hay una barra inclinada final, el contenido de / source-path / source-dir se copiará a destination-path . Si no hay una barra inclinada final , el directorio de origen se copiará en el destino y su contenido estará otro nivel más abajo en la jerarquía de destino.

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

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

1
Gran captura! Y si está haciendo esto desde varias unidades (o desde cualquier lugar de su computadora) y no desea escribir los directorios, simplemente arrastre una unidad (usb externo o cápsula del tiempo) o simplemente un directorio específico y haga que agregue a la orden para ti. Simplemente arrastre la ubicación de destino a la terminal
— BRogers

Hombre, muchas gracias por sugerir el corte final. Pasé el nuestro reflexionando sobre por qué rsync -av ./foo/bar / vol1 / foo / bar estaba copiando todos los archivos existentes. Cortes sangrientos jajaja !!!
— Sming

4

ACTUALIZAR

Primero instale coreutils primero. Ejecutar brew install coreutils. Si no lo ha brewinstalado ... ¡vuelva a Windows!

Verifique que cp --versionsalga la versión cp (GNU coreutils) 8. ^^

Entonces tendrá la cpversión correcta y la -ubandera funcionará.


Verifica el cpcomando. Usa man cpy lee las opciones. Puedes hacer algo como:

cp -r -u ~/source ~/destination

-R, -r , --recursive: copia directorios de forma recursiva
-u , --update: copia solo cuando el archivo SOURCE es más nuevo que el archivo de destino o cuando falta el archivo de destino
-p igual que --preserve = mode, propiedad , marcas de tiempo
-v --verbose: explica lo que se está haciendo

Entonces, si desea copiar archivos de su carpeta Descargas / música para decir su carpeta Música / nueva , haría algo como: Esto fusionaría el contenido de estas dos carpetas y si existen dos archivos con el mismo nombre y ruta, mantendrá el el más nuevo basado en la marca de tiempo.
cp -ruvp ~/Downloads/music/* ~/Music/new/


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

Pruebe el comando cp --help y vea si la opción está disponible. O verifique la versión cp y asegúrese de que esté actualizada. Estoy usando: cp (GNU coreutils) 8.27
— drew7721

Lamentablemente, -u no es un indicador válido para cp en OS X. ¡Sería muy conveniente tenerlo!
— Por Quested Aronsson

Lamentablemente esta respuesta es incorrecta.
— William Cerniuk

use brew install coreutilspara obtener la cpversión correcta .
— drew7721

0

No estoy seguro de por qué el botón predeterminado Lion Merge no aparece para mí. Pero terminé usando ditto. Encontrado aquí: https://superuser.com/a/221599/102789


1
¡TEN CUIDADO! Lo mismo no guarda los archivos más nuevos, siempre sobrescribe el destino con la fuente. Si el archivo de origen es anterior, eliminará el nuevo archivo y lo reemplazará con un archivo anterior
— FrancescoMM

es correcto - advertencia muy importante de FrancescoMM, use rsync
— Andrzej Martyna
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.