Articulo de referencia

cp (Unix)

En informática , cp es un comando en varios sistemas operativos Unix y similares a Unix para copiar archivos y directorios . El comando tiene tres modos principales de operación...

En informática , cpes un comando en varios sistemas operativos Unix y similares a Unix para copiar archivos y directorios . El comando tiene tres modos principales de operación, expresados ​​por los tipos de argumentos presentados al programa para copiar un archivo a otro archivo, uno o más archivos a un directorio o para copiar directorios completos a otro directorio. [1]

La utilidad acepta además varias opciones de línea de comandos para detallar las operaciones realizadas. Las dos especificaciones principales son POSIX cp y GNU cp . GNU cp tiene muchas opciones adicionales a la versión POSIX. [2]

El comando también está disponible en el shell EFI . [3]

Historia

cp fue parte de la versión 1 de Unix . [4] La versión cpincluida en GNU coreutils fue escrita por Torbjorn Granlund, David MacKenzie y Jim Meyering. [5]

Modos de funcionamiento

cp tiene tres modos principales de funcionamiento. Estos modos se infieren del tipo y la cantidad de argumentos que se presentan al programa al invocarlo.

  • Cuando el programa tiene dos argumentos de nombres de rutas de archivos, el programa copia el contenido del primer archivo al segundo archivo, creando el segundo archivo si es necesario.
  • Cuando el programa tiene uno o más argumentos de nombres de rutas de archivos y a continuación de estos un argumento de una ruta a un directorio, entonces el programa copia cada archivo de origen al directorio de destino, creando cualquier archivo que aún no exista.
  • Cuando los argumentos del programa son los nombres de las rutas de dos directorios, cp copia todos los archivos del directorio de origen al directorio de destino, creando los archivos o directorios necesarios. Este modo de operación requiere una opción adicional, normalmente r , para indicar la copia recursiva de directorios. Si el directorio de destino ya existe, el origen se copia en el destino, mientras que se crea un nuevo directorio si el destino no existe.

Uso

Copiar un archivo a otro archivo:

cp [-fHip][--] archivo de origen archivo de destino

Copiar archivo(s) a un directorio

cp [-fHip] [--] archivo de origen... directorio de destino

Copiar un directorio a un directorio (se debe utilizar -r o -R)

cp -r|-R [-fHip] [--] directoriodeorigen... directoriodedestino

Banderas de opciones

  • -f(forzar): especifica la eliminación del archivo de destino si no se puede abrir para operaciones de escritura. La eliminación precede a cualquier copia realizada por el cpcomando.
  • -H(desreferenciar) – hace que el cpcomando siga enlaces simbólicos (symlinks) para que el destino tenga el archivo de destino en lugar de un enlace simbólico al destino.
  • -i(interactivo) – solicita el nombre de un archivo que se va a sobrescribir. Esto ocurre si el parámetro TargetDirectory o TargetFile contiene un archivo con el mismo nombre que un archivo especificado en el parámetro SourceFile o SourceDirectory . Si se ingresa y(o el equivalente de la configuración regional de y), el cpcomando continúa. Cualquier otra respuesta evita que el cpcomando sobrescriba el archivo.
  • -n(sin manipulación ): evita sobrescribir accidentalmente cualquier archivo
  • -p(preservar) – la -pbandera preserva las siguientes características de cada ruta de origen en el destino correspondiente: la hora de la última modificación de los datos y la hora del último acceso , la propiedad (solo si tiene permisos para hacer esto) y los bits de permiso del archivo.
  • -Ro -r(recursivo) – copiar directorios recursivamente

Ejemplos

Creando una copia de un archivo en el directorio actual:

cp programa.c programa.bak

Esto copia prog.c a prog.bak. Si el archivo prog.bak aún no existe, el comando cp lo crea. Si existe, el comando cp reemplaza su contenido con el contenido del archivo prog.c.

Copiar dos archivos del directorio actual a otro directorio:

cp jones smith /inicio/nick/clientes

Esto copia los archivos jones a /home/nick/clients/jones y smith a /home/nick/clients/smith.

Copiar un archivo a un nuevo archivo y conservar la fecha de modificación, la hora y la lista de control de acceso asociadas con el archivo de origen:

cp -p smith smith.jr

Esto copia el archivo smith al archivo smith.jr. En lugar de crear el archivo con la fecha y hora actuales, el sistema le asigna al archivo smith.jr la misma fecha y hora que al archivo smith. El archivo smith.jr también hereda la protección de control de acceso del archivo smith.

Copiar un directorio, incluidos todos sus archivos y subdirectorios, a otro directorio:

cp -R /home/nick/clientes /home/nick/clientes

Esto copia el directorio clientes , incluidos todos sus archivos, subdirectorios y los archivos en esos subdirectorios, al directorio clientes/clientes . Algunos sistemas Unix se comportan de manera diferente en este modo, dependiendo de la terminación de las rutas de directorio. Al usarlo cp -R /home/nick/clients/ /home/nick/customersen un sistema GNU se comporta como se espera; sin embargo, en un sistema BSD, copia todo el contenido del directorio "clientes", en lugar del directorio clientes en sí. Lo mismo sucede en los sistemas GNU y BSD si la ruta del directorio fuente termina en . o .. (con o sin barra diagonal final).

La copia de un archivo a un archivo existente se realiza abriendo el archivo existente en modo de actualización, preservando así el inodo del archivo, lo que requiere acceso de escritura y da como resultado que el archivo de destino conserve los permisos que tenía originalmente.

  • cpio – copia una estructura de directorio completa de un lugar a otro
  • tar – crea un archivo de archivos
  • enlace – llamada del sistema para crear un enlace a un archivo o directorio
  • ln – crea un enlace a un archivo o directorio
  • mv – mover un archivo o directorio
  • rm – eliminar un archivo o directorio
  • unlink – llamada del sistema para eliminar un archivo o directorio
  • chmod – cambia el modo (también conocido como permisos) en un archivo o directorio
  • chown – cambiar la propiedad de un archivo o directorio
  • chgrp – cambiar el grupo en un archivo o directorio
  • uucp – copia de unix a unix
  • scp – copia segura por SSH
  • progreso, [6] [7] Herramienta de Linux para mostrar el progreso de cp, mv, dd.

Véase también

Referencias

  1. ^ "Cp(1) - Página del manual de Linux".
  2. ^ "GNU Coreutils: invocación de cp". GNU .
  3. ^ "EFI Shells and Scripting" (Conchas y secuencias de comandos EFI). Intel . Consultado el 25 de septiembre de 2013 .
  4. ^ McIlroy, MD (1987). Un lector de Unix para investigación: extractos anotados del Manual del programador, 1971–1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139.
  5. ^ "Cp(1): Copiar archivos/directorios - Página del manual de Linux".
  6. ^ "Progress(1) - Página del manual de Linux".
  7. ^ "Progreso - Visualizador de progreso de Coreutils". GitHub . 14 de noviembre de 2021.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Cp_(Unix)&oldid=1188871735"