El segundo método también funciona si otherFolder
ya existe. Aparte de eso, no hay ninguna diferencia (suponiendo que /Users/me/someFolder
es una carpeta existente). Con más detalle:
cp -a /Users/me/someFolder /Users/me/otherFolder
Si someFolder
es una carpeta (es decir, un directorio - y no un enlace simbólico a un directorio) y otherFolder
ya existe (y es un directorio o un enlace simbólico a uno), esto copia /Users/me/someFolder/some/file
a /Users/me/otherFolder/someFolder/some/file
. Si someFolder
es un directorio pero otherFolder
no existe, esta copia /Users/me/someFolder/some/file
a /Users/me/otherFolder/some/file
.
Si someFolder
existe pero no es un directorio (es un archivo normal, un enlace simbólico, etc.), se copia en /Users/me/otherFolder/someFolder
si otherFolder
es un directorio existente o un enlace simbólico a uno, o a /Users/me/someFolder
en caso contrario (archivo normal, otro archivo especial o inexistente).
cp -a /Users/me/someFolder/. /Users/me/otherFolder
Si someFolder
es un directorio o un enlace simbólico a uno, esto siempre copia /Users/me/someFolder/some/file
a /Users/me/otherFolder/some/file
independientemente de que otherFolder
existía o no. (Excepto si otherFolder
es un archivo existente que no es un enlace simbólico o un archivo, en cuyo caso el comando fallará).
En todos los casos, si lo que hay que copiar es un directorio, todo su contenido se copia recursivamente, conservando los permisos y los tiempos de modificación. (Los tiempos de acceso también se conservan, pero se actualizan en el origen). -a
opción.
Un comando equivalente es
rsync -a /Users/me/someFolder/ /Users/me/otherFolder
Obsérvese el final de /
en la fuente para que /Users/me/someFolder/some/file
se copia en /Users/me/otherFolder/some/file
. Si la fuente era /Users/me/someFolder
se copiará en /Users/me/otherFolder/someFolder
.
rsync
equivale a cp -R
en casos sencillos, pero es más inteligente a la hora de no copiar archivos que ya están presentes en la carpeta de destino, por lo que es bueno para reanudar una copia interrumpida o para hacer copias de seguridad incrementales. Rsync también tiene un montón de opciones para hacer cosas como seleccionar qué archivos copiar.