Estoy buscando la diferencia entre cp -r
y cp -a
. ¿Qué significa "recursivo" en términos de copiar archivos de una carpeta?
Estoy buscando la diferencia entre cp -r
y cp -a
. ¿Qué significa "recursivo" en términos de copiar archivos de una carpeta?
Respuestas:
Recursivo significa que cp
copia el contenido de los directorios, y si un directorio tiene subdirectorios, también se copian (recursivamente). Sin -R
, el cp
comando omite directorios. -r
es idéntico al -R
de Linux, difiere en algunos casos extremos en algunas otras variantes de Unix.
Por defecto, cp
crea un nuevo archivo que tiene el mismo contenido que el archivo anterior y los mismos permisos pero restringido por la umask ; la copia está fechada desde el momento de la copia y pertenece al usuario que hace la copia. Con la -p
opción, la copia tiene el mismo tiempo de modificación, el mismo tiempo de acceso y los mismos permisos que el original. También tiene el mismo propietario y grupo que el original, si el usuario que realiza la copia tiene el permiso para crear dichos archivos.
La -a
opción significa -R
y -p
, además de algunas otras opciones de preservación. Intenta hacer una copia lo más cercana posible al original: el mismo árbol de directorios, los mismos tipos de archivos, los mismos contenidos, los mismos metadatos (tiempos, permisos, atributos extendidos, etc.).
-r
porque -a
(para a
rchive) siempre es lo más seguro y probablemente lo que esperaba que sucediera.
-r
es porque estás en una variante de Unix que no es Linux -a
y que generalmente usarías cp -rp
. O rsync -a
.
La opción -r o -R para "recursivo" significa que copiará todos los archivos, incluidos los archivos dentro de las subcarpetas.
La opción -a que figura en la lista es la misma que -dR, lo que significa que preservará los enlaces y copiará el contenido de los subdirectorios. Lo que significa preservar enlaces es que no seguirá los enlaces ya que se está copiando recursivamente.