2008-10-01 11 views
5

Soy un tipo Linux y estoy acostumbrado a copiar árboles de directorios con cp -a. OS X no tiene la opción -a en cp ... pero sí tiene el comando ditto. Estoy leyendo al hombre en ditto ahora, pero ¿hay algo que debería estar buscando específicamente?Cómo usar ídem en OS X para trabajar como cp -a en Linux

+0

¿Qué hace cp -a hacer de todos modos? – wprl

Respuesta

6

De acuerdo con la página hombre cp cp -a es lo mismo que cp -dpR que es

-p = preserve mode,ownership,timestamps 
-R = recursive 
-d = no dereference and preserve links 

El equivalente OS X sería

cp -pPR

-p = preserve 
-R = recursive 
-P = no symbolic links are followed -- can be added but this is the default behavior 

Lo único que falta es -d, que creo que es el comportamiento predeterminado, pero no estoy seguro.

nunca he metido con ídem

Editar - @SoloBold

-L sigue los enlaces simbólicos. -p NO sigue los enlaces simbólicos. OS X (10.4 como mínimo) no tiene la opción -d.

eso es una gran diferencia.

+1

cp -pPR debería hacer el trabajo, en 10.5 al menos. –

+0

Es lo mismo en 10.4 – Simurr

+0

http://www.westwind.com/reference/os-x/commandline/files-folders.html#ditto –

0

Como j04t señaló que debe haber cp -pR

En OS X, que haría

cp -dRL src target 

cp conserva recursos en nueva versión de OS X (era 10,3 cuando eso sucedió?)

Hey d es un poco como un p patas arriba, a la derecha;)

1

De cp Linux (1) :

-a, --archive mismo que -dpR

que es confuso, ya -d parece ser equivalente a -p. De todos modos, OSX tiene -p y -R, así que podrías usar eso.

+0

De las páginas man de OS X: "Siempre se siguen los enlaces simbólicos a menos que se establezca el indicador -R, en cuyo caso no se siguen los enlaces simbólicos". Lo cual es opuesto a la forma en que funciona Linux. – wprl

2

Personalmente utilizo rsync -a (o lo que sea que se necesiten rsync params). Mis dos razones son: ya sé cómo hacer esto, y necesito que mis scripts sean portátiles en Linux/BSD/Solaris. También hay algunos sistemas de archivos donde rsync es más eficiente que cp.

Disculpa, no es una respuesta directa, he usado ditto en BSD pero no tengo ningún truco que no esté en la página de manual.

0

existe una diferencia entre ditto y cp, que es cuando fuente es un directorio, cp crea un directorio con ese nombre en el destino, pero lo mismo copia el contenido. ¡Tener cuidado!

1

Si está utilizando ídem, usted debe ser consciente de que se mueve el contenido un poco diferente a cp -a cuando se trata de carpetas:

ditto foo bar 

se moverá el contenido de foo en la barra (que resulta en la barra/archivo1, bar/fichero2 ..)

cp -a foo bar 

se moverá foo/en bar/(resultando en bar/foo/archivo1, bar/foo/archivo2, ..)

también: cp OSX ahora apoyo t cp -a.