Mandato cp

Finalidad

Copia archivos.

Sintaxis

Para copiar un archivo en otro archivo

cp [ -E{force|ignore|warn} ] [ -f ] [ -h ] [  -i ] [ -p ] [ -I ] [ -U ] [ ] ArchivoOrigen ArchivoDestino

Para copiar un archivo en un directorio

cp [ -E{force|ignore|warn} ] [ -f ] [  -h ] [  -i ] [  -p ] [[  -r -R ] [ -H | -L | -P ]] [ -I ] [ -U ] [ ] ArchivoOrigen ... DirectorioDestino

Para copiar un directorio en un directorio

cp [ -E{force|ignore|warn} ] [ -f ] [  -h ] [  -i ] [  -p ] {  -r -R } [ -H | -L | -P ] [ -I ] [ -U ] [  ] DirectorioOrigen ... DirectorioDestino

Descripción

El mandato cp copia el archivo origen especificado por el parámetro ArchivoOrigen en el archivo destino especificado por el parámetro ArchivoDestino. Si el archivo destino existe, cp sobrescribe el contenido, pero la modalidad, propietario y grupo asociados a él no se cambian. La última hora de acceso del ArchivoOrigen y la última hora de modificación del ArchivoDestino se establecen en la hora de realización de la copia. Si el ArchivoDestino no existe, cp crea un archivo denominado TargetFile que tiene la misma modalidad que el archivo origen, excepto que el bit permanente no se establece a menos que lo realice un superusuario; el propietario y el grupo del TargetFile son los del usuario. Si el ArchivoDestino es un enlace a otro archivo, cp sobrescribe el enlace destino con el contenido del archivo origen; los enlaces del ArchivoDestino permanecen. El mandato cp también puede copiar los archivos origen especificados por el parámetro ArchivoOrigen (o los directorios indicados por el parámetro DirectorioOrigen) en el directorio especificado por el parámetro DirectorioDestino).

Nota:
Si uno de los parámetros origen es un directorio, debe especificar uno de los distintivos -r o -R.

Si el mandato cp crea directorios durante el proceso de copia, el directorio recién creado tendrá la misma modalidad que el directorio origen correspondiente.

También puede copiar archivos de dispositivo especiales. La opción preferida para realizar esta operación es el distintivo -R. La especificación de -R provoca la recreación de los archivos especiales bajo el nuevo nombre de vía de acceso. La especificación del distintivo -r hace que el mandato cp intente copiar el archivo especial en un archivo normal.

Distintivos

-E La opción -E requiere uno de los siguientes argumentos. Si omite la opción -E, el comportamiento predeterminado es warn.
force
La operación cp falla en un archivo si el tamaño de ampliación fijo o la reserva de espacio del archivo no pueden conservarse.
ignore
Pasa por alto los errores al conservar atributos de ampliación.
warn
Emite un aviso si la reserva de espacio o el tamaño de ampliación fijo del archivo no pueden conservarse.
-f Especifica la eliminación del archivo destino si no puede abrirse para operaciones de grabación. La eliminación precede a las operaciones de copia realizadas por el mandato cp.
-h Obliga al mandato cp a copiar enlaces simbólicos. El valor predeterminado es seguir los enlaces simbólicos, es decir, copiar archivos a los que señalan enlaces simbólicos.
-H Realiza acciones en función del tipo y el contenido del archivo al que hacen referencia los enlaces simbólicos especificados como operando ArchivoOrigen.
-i Solicita al usuario el nombre de un archivo que debe sobrescribirse. Este se produce si los parámetros DirectorioDestino o ArchivoDestino contienen un archivo con el mismo nombre que un archivo especificado en los parámetros ArchivoOrigen o DirectorioOrigen. Si especifica y o o el equivalente de y del entorno nacional, el mandato cp continúa. Cualquier otra respuesta impide que el mandato cp sobrescriba el archivo.
-I Suprime el mensaje de aviso durante la conversión de ACL.
-L Realiza acciones en función del tipo y el contenido del archivo al que hacen referencia los enlaces simbólicos especificados como operando ArchivoOrigen o los enlaces simbólicos encontrados durante el cruce de una jerarquía de archivos.
-p Duplica las siguientes características de cada ArchivoOrigen/DirectorioOrigen en el ArchivoDestino y/o DirectorioDestino correspondiente:
  • La hora de la última modificación de datos y la hora del último acceso. Si esta duplicación falla por alguna razón, el mandato cp grabará un mensaje de diagnóstico en los errores estándar.
  • El ID de usuario y el ID de grupo. Si esta duplicación falla por alguna razón, el mandato cp puede grabar un mensaje de diagnóstico en los errores estándar.
  • Los bits de permiso de archivo y los bits S_ISUID y S_ISGID. Si esta duplicación falla por alguna razón, el mandato cp grabará un mensaje de diagnóstico en los errores estándar.

Si el ID de usuario o el ID de grupo no pueden duplicarse, los bits de permiso de archivo y los bits S_ISUID y S_ISGID se borran.

Para conservar el ID de propietario y el ID de grupo, las modalidades de permiso y las horas de modificación y acceso, el usuario debe tener los permisos de acceso a archivo adecuados (el usuario debe ser un superusuario o tener el mismo ID de propietario que el archivo destino).

El archivo destino no se suprimirá si no pueden conservarse estas características.

Las listas de control de acceso (ACL) asociadas al ArchivoOrigen se conservan si el sistema de archivos destino da soporte a las mismas. Si el archivo origen contiene ACL NFS4 y el sistema de archivos destino no da soporte a ACL NFS4, la ACL NFS4 se convertirá a AIXC.

Si la conversión de ACL es satisfactoria, se graba un mensaje de aviso en los errores estándar.

-P Realiza acciones sobre los enlaces simbólicos especificados como operando ArchivoOrigen o los enlaces simbólicos encontrados durante el cruce de una jerarquía de archivos.
-r Copia jerarquías de archivos que se encuentran bajo el archivo o directorio especificado por los parámetros ArchivoOrigen o DirectorioOrigen (copia recursiva). El distintivo -r procesa archivos especiales del mismo modo que los archivos normales.
-R Copia jerarquías de archivos situadas bajo los archivos y directorios regulares del directorio especificado por el parámetro ArchivoOrigen o DirectorioOrigen en el directorio especificado por el parámetro DirectorioDestino. Los tipos de archivos especiales, como por ejemplo los archivos FIFO (primero en entrar, primero en salir) y los archivos de dispositivo de caracteres y bloques se vuelven a crear en lugar de copiarlos. Se siguen los enlaces simbólicos a menos que se especifique el distintivo -h. (El distintivo -R es preferible al distintivo -r).

Si no se especifica ninguna de las opciones -H, -L o -P, queda sin especificar cuál de dichas opciones se utilizará como valor predeterminado. Tenga en cuenta lo siguiente:

  • Si se ha especificado la opción -H, el mandato cp realizará la acción en función del tipo y del contenido del archivo al que hacen referencia los enlaces simbólicos especificados como operandos ArchivoOrigen.
  • Si se ha especificado la opción -L, el mandato cp realizará la acción en función del tipo y del contenido del archivo al que hacen referencia los enlaces simbólicos especificados como operandos ArchivoOrigen o los enlaces simbólicos encontrados durante el cruce de una jerarquía de archivos.
  • Si se ha especificado la opción -P, el mandato cp copiará los enlaces simbólicos especificados como operandos ArchivoOrigen y los enlaces simbólicos encontrados durante el cruce de una jerarquía de archivos, y no seguirá enlaces simbólicos.
-U Copia los Atributos ampliados (EA) y Listas de control de acceso (ACL) del ArchivoOrigen en el ArchivoDestino. Si los EA no están soportados en el sistema de archivos destino, se pasan por alto. Si el tipo de ACL origen no está soportado en el sistema de archivos destino, se convierte al tipo de ACL compatible soportado por el sistema de archivos destino.
-- Indica que los parámetros situados a continuación del distintivo -- (guión, guión) deben interpretarse como nombres de archivo. Este distintivo nulo permite la especificación de nombres de archivo que empiecen con un - (signo menos).

Estado de salida

Este mandato devuelve los siguientes valores de salida:

0 Todos los archivos se han copiado satisfactoriamente.
>0 Se ha producido un error.

Ejemplos

  1. Para realizar una copia de un archivo del directorio actual, especifique:

    cp prog.c prog.bak

    Este mandato copia prog.c en prog.bak. Si el archivo prog.bak aún no existe, el mandato cp lo crea. Si existe, el mandato cp lo sustituye por una copia del archivo prog.c.

  2. Para copiar un archivo del directorio actual en otro directorio, especifique:

    cp jones /home/nick/clients

    Este mandato copia el archivo jones en /home/nick/clients/jones.

  3. Para copiar un archivo en un archivo nuevo y conservar la fecha y hora de modificación y la lista de control de acceso asociadas con el archivo origen, especifique:
    cp  -p smith smith.jr
    Este mandato copia el archivo smith en el archivo smith.jr. En lugar de crear el archivo con la fecha e indicación de la hora actuales, el sistema otorga al archivo smith.jr la misma fecha y hora que el archivo smith. El archivo smith.jr también hereda la protección de control de acceso del archivo smith.
  4. Para copiar todos los archivos de un directorio en otro directorio, especifique:

    cp /home/janet/clients/* /home/nick/customers

    Este mandato copia sólo los archivos del directorio clients en el directorio customers.

  5. Para copiar un directorio, incluidos todos sus archivos y subdirectorios, en otro directorio, especifique:
    cp  -R /home/nick/clients /home/nick/customers
    Nota:
    Un directorio no puede copiarse en sí mismo.
    Este mandato copia el directorio clients, incluidos todos sus archivos, subdirectorios y los archivos de los mismos, en el directorio customers/clients.
  6. Para copiar un conjunto específico de archivos en otro directorio, especifique:

    cp jones lewis smith /home/nick/clients

    Este mandato copia los archivos jones, lewis y smith del directorio de trabajo actual en el directorio /home/nick/clients.

  7. Para utilizar caracteres de comparación de patrones para la copia de archivos, especifique:

    cp programs/*.c .

    Este mandato copia los archivos del directorio programs que terminan en .c en el directorio actual, indicado por un solo . (punto). Debe especificar un espacio entre la c y el punto final.

  8. Para copiar un archivo en un archivo nuevo y conservar la ACL y los EA asociadas con el archivo origen, especifique:
    cp -U smith smith.jr
    

Archivos

/usr/bin/cp
Contiene el mandato cp.

Información relacionada

El mandato mv.


Enviar comentarios |  Valorar esta página