Usar "mv" o "ditto" para fusionar carpetas en OS X

Usar "mv" o "ditto" para fusionar carpetas en OS X

Acostumbrado a la forma de hacerlo de Windows, acabo de descubrir que OS X no tiene función de combinación: mover significa reemplazar la carpeta. Si bien esto tiene sentido, ¡extraño la fusión!


Tengo dos directorios de Wordpress, 1 contiene la fuente predeterminada y 2 contiene una versión trabajada con complementos, temas personalizados, etc.

Quiero ver la diferencia entre estos dos, así que lo pondré en SVN. La carpeta 1 ya está activa, ahora, en teoría, simplemente debería fusionar el contenido de 2 con 1 reemplazando todo con el contenido de 2 pero dejando intactos los archivos SVN ocultos.

Desafortunadamente, OS X, al moverse, reemplaza la carpeta, por lo que mi cliente SVN se vuelve loco y ya no comprende la estructura de la carpeta.

Entonces, creo que mis opciones son mvy ditto, pero ¿cuál usarías en mi situación y cómo?

sudo mv wordpress /Documents/svn/wwwholiday/trunk/wordpress

Quiero mvsobrescribir todo lo que encuentre, pero dejar en paz lo que ya esté dentro de la carpeta 1 y no tenga duplicados en la carpeta 2.

Respuesta1

La forma más sencilla de fusionar carpetas de una manera, por ejemplo

Fusionar todo desde la carpeta 1 → carpeta 2

sería utilizar rsync.

rsync -avh folder1/* folder2/

Esta voluntad:

  • mueva todos los archivos que solo existen en la carpeta 1 y sus subdirectorios a la carpeta 2
  • nosobrescribir cualquier cosa en la carpeta 2 si ya está allí
  • sobrescribir archivos que han sido modificados,a menos queagregas la --ignore-existingopción
  • no borrar nada de la carpeta 2,a menos queagregas la --deleteopción

Siéntete libre de adaptar esto a tu situación (donde folder1y folder2son al revés, supongo).

Puedes intentar ver qué hace el comando llamando:

rsync -avh --dry-run folder1/ folder2/

El dry-runinterruptor le muestra lo que hace.


No olvides que las barras invertidas tienen un significado especial, por lo folder2/que el destino no es el mismo que folder2. Consulte la página de manual rsyncpara conocer el uso y más opciones.

También se recomienda -P(según --help, same as --partial --progress) que agrega show progress during transfery keep partially transferred files(que es útil para reintentos si hubo falla).

Respuesta2

Puedes hacer esto como dice @slhck o también puedes simplemente usar cp.

$sudo cp -R wordpress/ /Documents/svn/wwwholiday/trunk/wordpress

información relacionada