Combinar dos carpetas, sin sobrescribir ningún archivo

Tengo una carpeta llamada "AeroFS" y otra llamada "AeroFS Backup".

"AeroFS Backup" contiene todo lo que contiene "AeroFS", y más.

Necesito fusionar "AeroFS Backup" nuevamente en la carpeta "AeroFS", pero no sobrescribir NINGÚN archivo existente, incluso si son más nuevos.

No me siento particularmente cómodo con los comandos de terminal, pero puedo probarlos.

¿ Hay alguna aplicación gratuita que pueda hacer esto sin sobrescribir los archivos existentes?

man mvpodría ser un buen lugar para empezar :-)
Estoy intentando con RSync, sin embargo, no se comporta correctamente y, en cambio, está copiando la carpeta dentro de la carpeta seleccionada.
Parece que puede tener una barra diagonal final en su comando rsync donde no debería, o viceversa. Ver esta respuesta .
Intentarrsync -av --ignore-existing source/ destination

Respuestas (5)

No estoy seguro de por qué se eliminó la otra respuesta, era casi correcta.

Yo uso el comando de terminal para hacer esto:

cp -n -v '/src'/* '/dest'

cp= Copiar

-n= No sobrescribir existente

-v= Salida detallada

Para cualquiera que haga esto con árboles de directorios, -rpara recursivo.
@PeterDeWeese Estaba seguro de que funcionaba sin esa opción, pero ya no tengo acceso a una Mac para probar. Gracias por tu contribución.

Según la versión de macOS que esté ejecutando, puede seleccionar todos los archivos en AeroFS Backup y arrastrarlos a la carpeta AeroFS . Cuando lo haga, se le solicitará lo siguiente:

ingrese la descripción de la imagen aquí

Si luego marca la casilla de verificación Aplicar a TODOS y hace clic en el Keep Bothbotón, fusionará los archivos como desee. (En versiones anteriores de macOS, es posible que se le solicite el Mergebotón en lugar del Keep Bothbotón). Si no obtiene ninguna de las opciones, intente mantener Optionpresionada la tecla mientras arrastra los archivos.

IMPORTANTE : antes de hacer esto con las carpetas que desea, crearía un par de carpetas de prueba (o simplemente haría copias de las carpetas que desea fusionar) y luego probaría este comportamiento, ya que no estoy seguro de qué versiones de macOS se ofrecían originalmente. esta funcionalidad.

Desafortunadamente esto no es lo que queremos. Todavía copia los archivos y hace duplicados de todos los que ya existen. Necesitamos una opción "Omitir".
Hmm, estoy un poco confundido. Si desea fusionar las carpetas sin sobrescribir ningún archivo existente, ¿no es esto exactamente lo que necesita? Disculpas si me estoy perdiendo algo obvio, ha sido uno de esos días. :(
No, las dos carpetas son idénticas, excepto que la carpeta de copia de seguridad contiene más archivos. Si tuviera que fusionarlos, todos los archivos existentes terminarían con duplicados.
De acuerdo, bueno, si obtiene la opción Conservar ambos de forma predeterminada, al presionar la tecla Opción hacia abajo cambiará la opción de Conservar ambos a Omitir .
La opción Omitir no está allí en absoluto. Intenté mantener presionadas todas las teclas.
Bien, analicemos esto un poco. En versiones mucho más antiguas de macOS, solo obtendría Skipcomo opción adicional predeterminada. Entonces se convirtió Mergey ahora es Keep Both. La forma de cambiarlo fue presionando la tecla Opción (que puede hacer después de que aparezca el mensaje en la pantalla). Si me dices qué versión de macOS estás ejecutando, estaré feliz de probarlo en mi extremo para ver si puedo replicar lo que estás obteniendo. :)

Puede hacer esto en la Terminal con un breve script:

for file in /source/directory; do $time=date +%s; if [[ -f /target/directory/$file ]]; then cp $file ${file}-${time}; else cp $file /target/directory/$file; fi; done

Esto verificará si el archivo ya existe y, si existe, agregará el tiempo en segundos al nombre del archivo de destino y lo copiará. La ventaja que esto tiene sobre solo hacer una sobrescritura -vdetallada o -nno es que garantizará que no haya múltiples duplicados.

Además, esto tiene la ventaja añadida de que si los nombres de archivo son iguales pero son diferentes en tamaño/contenido, le da la oportunidad de ver los posibles duplicados y tratar con ellos.

Sin usar la terminal, puede arrastrar sus archivos desde la carpeta de origen (AeroFS Backup) a la carpeta de destino (AeroFS) y cuando Finder se dé cuenta de que existe el mismo archivo, mostrará una alerta preguntándole qué desea que haga. Si presiona "Opción" mientras mira esa alerta, una de las opciones cambiará a "Omitir" y luego podrá aplicarla a todos los archivos que está arrastrando.

Grabé un breve video que muestra esto en acción.


Usando Terminal, recomiendo la solución RSYNC:

rsync -av --ignore-existing sourceFolder/ destinationFolder

Synkron bien podría hacer exactamente lo que quiere. El precio está bien. Tiene muchas características. Lo uso para sincronizar desde mi carpeta maestra en Mac a una carpeta NTFS en una Raspberry pi HD. No se vuelve loco copiando archivos que ya están ahí.