skip to Main Content

Utilice ditto para copiar archivos y directorios de forma inteligente desde la terminal de Mac

El comando ditto

La mayoría de los usuarios de la línea de comandos desde hace mucho tiempo confían en el comando cp para copiar archivos y directorios, pero Mac OS X ofrece otra solución con el comando ‘ditto’. Ditto es un poco más avanzado, pero puede ser ventajoso para ‘cp’ por varias razones, ya que no solo conserva los atributos y permisos de propiedad, sino también las bifurcaciones de recursos de archivos y los metadatos de archivos y carpetas, esencialmente asegurando que el archivo y / o las carpetas se copien exactamente.

Además, ditto se puede usar para copiar un archivo o carpeta a un directorio de origen, pero si ese origen aún no existe, ditto lo creará automáticamente. Además, si la carpeta de destino existe, el contenido copiado se fusionará en ese directorio de destino. Finalmente, ditto también sigue enlaces simbólicos, lo que lo hace particularmente útil si eres un gran usuario del comando ln.

Para comprender mejor el comando ditto, veamos algunos ejemplos con sintaxis real.

Uso de Ditto para copiar archivos / carpetas

En su forma más simple, ditto funciona de manera muy similar al comando cp, con la sintaxis básica de la siguiente manera:

ditto source destination

Por ejemplo, si desea copiar ~ / Desktop / FluffyBackups en / Volumes / FluffyBackups /, simplemente escriba lo siguiente:

ditto ~/Desktop/FluffyBackups /Volumes/FluffyBackups/

Nuevamente, esto conservará toda la propiedad y los detalles de los metadatos de los recursos de los archivos copiados, lo que puede ser particularmente importante si está copiando archivos de un directorio de usuario a otro, o si desea conservar algo como las horas de modificación de los archivos.

Si no está seguro sobre el contenido de origen y destino, siempre puede comparar los dos con el comando comm o el comando diff antes de continuar con el comando ditto.

Uso de Ditto para fusionar directorios y contenido de carpetas

Recuerde, ditto verificará si el destino ya existe y, si existe, fusionará los directorios de la fuente con el destino. Esto es importante y extremadamente útil, por lo que es una de las formas más fáciles de fusionar los directorios desde la línea de comandos en Mac OS X (aunque ahora también es fácil en el Finder).

ditto ~/Pictures/Fall2015/ /Volumes/PhotoBackup/2015/

Esto tomaría todas las imágenes de “Fall2015” y las copiaría en el directorio preexistente “2015”, fusionando efectivamente el contenido del origen al destino. Nuevamente, el comportamiento de fusión ocurre cuando el destino ya existe, si el destino no existe, se crearía como se especificó o como el nombre de origen.

Si está usando ditto para copiar datos de directorios con enlaces simbólicos, usar la marca -V (verbose all) es valioso porque mostrará todos los archivos y enlaces simbólicos que se han copiado. Nota -V es diferente de -v, que solo mostrará archivos como salida y no enlaces simbólicos.

Copiar sin metadatos usando Ditto

Si por alguna razón no desea copiar metadatos y bifurcaciones de recursos, puede usar la marca –norsrc así:

ditto -V --norsrc ~/Sample/Folder /Volumes/NoMetadataBackups

El uso de la bandera –norsrc anula un beneficio principal de ditto, pero puede ser útil en algunos casos.

Puede aprender mucho más sobre el excelente comando ditto leyendo su página de manual, accesible en Mac OS X escribiendo:

man ditto

La página de manual de ditto explica cómo usarla para copiar archivos y directorios de manera avanzada

Como de costumbre, use las teclas de flecha para navegar hacia arriba y hacia abajo en la página del manual.

Antes de confiar mucho en ditto, asegúrese de probarlo varias veces con movimientos de archivos y fusiones de directorios intrascendentes para comprender cómo funciona con su uso planificado.

Back To Top