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 mv
y ditto
, pero ¿cuál usarías en mi situación y cómo?
sudo mv wordpress /Documents/svn/wwwholiday/trunk/wordpress
Quiero mv
sobrescribir 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-existing
opción - no borrar nada de la carpeta 2,a menos queagregas la
--delete
opción
Siéntete libre de adaptar esto a tu situación (donde folder1
y folder2
son al revés, supongo).
Puedes intentar ver qué hace el comando llamando:
rsync -avh --dry-run folder1/ folder2/
El dry-run
interruptor 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 rsync
para conocer el uso y más opciones.
También se recomienda -P
(según --help
, same as --partial --progress
) que agrega show progress during transfer
y 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