Comando.- cp

cp es una orden Unix, sirve para copiar archivos o directorios. Proviene de la palabra inglesa copy, en español copiar.

Si el archivo destino existe lo sobreescribe y realiza la copia sin comentario ni advertencia. Su equivalente en DOS es copy

Sintaxis:

cp [Opciones] [Origen] [Destino]
cp [Opciones] [Orígenes] [Directorio]

Opciones (obtenidas con cp –help en la terminal):

Los argumentos obligatorios para las opciones largas son también obligatorios
para las opciones cortas.
  -a, --archive                         lo mismo que -dpR
      --backup[=CONTROL]                crea una copia de seguridad de cada archivo
                                          de destino que exista
  -b                                    como --backup pero no acepta ningún argumento
      --copy-contents                   copia el contenido de los archivos especiales
                                        cuando opera recursivamente
  -d                                    lo mismo que --no-dereference --preserve=link
  -f, --force                           si un archivo de destino no puede abrirse,
                                          eliminar el archivo e intentar de nuevo
  -i, --interactive                     preguntar antes de sobreescribir
  -H                                    seguir los enlaces simbólicos en ORIGEN
  -l, --link                            enlazar archivos en vez de copiar
  -L, --dereference                     siempre seguir enlaces simbólicos en SOURCE
  -P, --no-dereference                  no seguir enlaces simbólicos en SOURCE
  -p                                    igual que --preserve=mode,ownership,timestamps
      --preserve[=LISTA_ATR]            preserva los atributos especificados (por defecto:
                                          mode,ownership,timestamps), y si es posible
                                          atributos adicionales: context, links, all
      --no-preserve=LISTA_ATTR          no conserva los atributos especificados
      --parents                         añade el directorio de origen a DIRECTORIO
  -R, -r, --recursive                   copia recursivamente, los no directorios como
                                          ficheros
      --remove-destination              borra cada fichero de destino que exista antes
                                          de intentar abrirlo (compárese con --force).
      --sparse=CUANDO                     controla la creación de archivos dispersos 
      --strip-trailing-slashes          elimina cualquier barra (/) final de cada argumento
                                          ORIGEN
  -s, --symbolic-link                   crea enlaces simbólicos en lugar de copiarlos
  -S, --suffix=SUFIJO                   reemplaza el sufijo habitual de las salvaguardas
      --target-directory=DIRECTORIO     mueve todos los argumentos ORIGEN al
                                          DIRECTORIO
  -T, --no-target-directory             trata DEST como un archivo normal.
  -u, --update                          copia solamente cuando el fichero ORIGEN es
                                        más moderno que el fichero de destino,
                                          o cuando falta el fichero de destino
  -v, --verbose                         da detalles sobre lo que se va haciendo
  -x, --one-file-system                 permanece en este sistema de ficheros
      --help                            muestra esta ayuda y finaliza
      --version                         informa de la versión y finaliza

Por omisión, los ficheros ORIGEN `sparse' se detectan mediante una simple
heurística y los correspondientes ficheros DESTINO se crean también `sparse'.
Este es el comportamiento con --sparse=auto. Al especificar --sparse=always se
crea un fichero DESTINO `sparse' cuando el fichero ORIGEN contiene una sucesión
de bytes cero suficientemente larga.
Utilice --sparse=never para inhibir la creación de ficheros `sparse'.

El sufijo de respaldo es `~', a menos que se establezca con --suffix o con
SIMPLE_BACKUP_SUFFIX. El método de control de versión se puede seleccionar
con la opción --backup o a través de la variable de entorno VERSION_CONTROL.
Estos son los valores:

  none, off            nunca realiza copias de seguridad (incluso si se da la
                         opción --backup)
  numbered, t          crea copias de seguridad numeradas
  existing, nil        numeradas si existen copias de seguridad numeradas,
                         simples en caso contrario
  simple, never        siempre crea copias de seguridad simples

Como caso especial, cp crea una copia de seguridad de ORIGEN cuando se utilizan
las opciones `force' y `backup', y ORIGEN y DESTINO tienen el mismo nombre para
un nombre de fichero regular existente.

La condición para copiar un archivo y/o directorio es que el destino exista de antemano.

Copiar un archivo de un lugar a otro:

Sintaxis:

cp [Origen] [Destino]

Ejemplo.- Copiar el archivo cp.pdf en el escritorio a documentos.

cp Desktop/cp.pdf Documents

Copiar varios archivos a un directorio:

Sintaxis:

cp [Origenes] [Directorio]

Por ejemplo, tengo varios archivos en el escritorio que quiero copiar en un solo paso a documentos. Sus nombres son: cp.txt, man-cp.pdf, cp.png. En la terminal escribo:

cp Desktop/cp.txt Desktop/man-cp.pdf Desktop/cp.png Documents

Copiar un directorio completo. La opción -R, -r, -recursive hacen el trabajo y son la misma cosa.

Sintaxis:

cp -R [Origen] [Destino]
cp -r [Origen] [Destino]
cp --recursive [Origen] [Destino]

Ejemplo.- Copiar todo los archivos dentro de la carpeta cp de documentos al directorio cp del escritorio:

cd -r Documents/cp Desktop/cp

El comando cp cuando copia archivos de un lugar a otro y en el destino se encuentra un archivo con el mismo nombre lo sobreescribe. Para que pregunte antes de borrar el anterior y sustituirlo por el nuevo se hace uso del comando -i o -interactive

Sintaxis:

cp -i [Origen] [Destino]
cp --interactive [Origen] [Destino]

Ejemplo.- Tengo en el escritorio un archivo llamado cp.pdf pero no recuerdo si lo tango ya en documentos. Para que me pregunte si lo sobreescribe, tecleo en la shell:

cp -i Desktop/cp.pdf Documents
cp --interactive Desktop/cp.pdf Documents

La opción -f o -force se asegura que el archivo se copie correctamente, en caso contrario lo elimina y lo intenta de nuevo.

Sintaxis:

cp -f [Origen] [Destino]
cp --force [Origen] [Destino]

Ejemplo:

cp -f Desktop/cp.txt Documents
cp --force Desktop/cp.txt Documents

Con * selecciona todos los archivos en un directorio

Sintaxis:

cp [Origen]/* [Destino]

Ejemplo:

cp Desktop/cp/* Documents/copy

Esta orden copio todos los archivos que hay dentro de cp en el escritorio a la carpeta copy de documentos.

La opción -a es equivalente a -dpR. No sigue los enlaces simbólicos, conserva los atributos de mode, ownership, timestamps, y copia recursivamente los archivos.

Sintaxis:

cp -a [Origen] [Destino]

Ejemplo:

cp -a Desktop/copy Documents/cp

 

 

http://es.wikipedia.org/wiki/Cp_(Unix)
http://iie.fing.edu.uy/~vagonbar/unixbas/sisarch2.htm
http://html.rincondelvago.com/linux_12.html
La ayuda obtenida con los comandos:

cp --help
man -t cp | ps2pdf - > Desktop/man-cp.pdf
Anuncios

12 thoughts on “Comando.- cp

  1. Holap:

    A veces hay carpetas que están “seteadas” de tal manera que sólo permiten al Super User copiar archivos en ellas… en ese caso, sólo basta hacer:

    sudo cp [nombre_archivo] [carpeta]

    Saludooos 😛

    1. Hola, cuanto gusto verte de nuevo 😀

      Ese método lo empleo para copiar las imágenes del grub en su lugar.

      sudo cp Desktop/imagen.xpm.gz /boot/grub

      😉 primero hago una carpeta en el grub especialmente para meter sus imágenes, pero tu me entiendes lo que quiero decir.

      Saludos

  2. por favor estoy en stand by mental, necesito q me brinden un ejemplo de la orden cp, pero realizado en GEDIT de UBUNTO. les agredeceria muchisimo

  3. hola amigo gracias estoy aqui arreglando mi tarjeta wifi y baje con el usb el firmware desde windows para actualizarla en lenny y poder conectarme desde allí me dio un error el comando cp copiando desde cp /media/disk/”mi.firmaware” *.*/lib/firmware/

    lo tomè de otro bloc pero ahora veo que se utiliza solo un asterisco, lo intentare de nuevo haber si me funciona por cierto es desde la usb. hasta luego.

    1. Hola, soy amigA.

      Con sudo, gksu y su obtienes permisos de root (administrador). Cada una tiene su lugar y cosas para usarse. pero son sencillas.

      Esta orden no me termina de convencer:

      cp /media/disk/"mi.firmaware" *.*/lib/firmware/

      Ya debes de haber solucionado esto o haberte dado por vencido. Y yo ahorita no tengo cabeza para ver que tiene mal esa orden. En Ubuntu puedes abrir de forma gráfica las carpetas y con permiso de root ejecutando: Alt+F2 para que te salte Run Application y ejecutar gksu nautilus. Nada más que ten cuidado, porque abriendo así el nautilus puedes hacer con las carpetas lo que quieras y verdaderas barbaridades al alcance de un click.

  4. Consulto:

    Tengo que copiar 43 archivos con similares caracteristicas con otro nombre a otra carpeta…
    En Windows lo podía hacer con el siguiente comando:

    copy RE??1102.??? .\BackUp\RE??1102.???_29.03.2011 /v
    otra opción
    copy RE??1102.??? Re??1103.??? /v

    Como pasar este parametro a Linux… no quiero iniciar Windows sólo para hacer este proceso…

    Que me cuentan Uds…

    RjveraL

    1. No se porque, siento que esto es examen o les estoy haciendo la tarea.

      Ya dije que Windows hace años que no lo uso y el DOS lo utilice lo básico como dos meses hace muchos años. Fueron algo así como cinco comandos.

      Lo que tu andas buscando es la "substitución de meta-caracteres".

      Estos son de UNIX.

      Asteriscos

      En UNIX y creo que también en el DOS los asteriscos (*) sustituyen todo. Por ejemplo si pongo:

      cp ~/Desktop/*.jpg ~/Documents/

      Va a copiar todos los archivos con extensión jpg que se encuentren en mi Desktop a Documents

      Signo de interrogación

      El signo de interrogación (?) sustituye un solo carácter:

      cp -v RE??1102.??? ~/tu-respaldo

      Va a copiar todos a la carpeta tu-respaldo en tu home todos los archivos que comiencen con RE, tengan dos caracteres más, seguidos de un 1102, luego un punto; y después de el, tres caracteres. Por la opción -v del comando cp te va a decir que esta haciendo.

      Otra forma de poner eso mismo, cuando la extensión tenga más de tres caracteres o te de flojera poner tanto signo de interrogación es:

      cp -v RE??1102.* ~/tu-respaldo

      Corchetes

      Otro que sirve son los corchetes ([]) estos lo que hacen es que dan una serie de opciones para sustituir.

      Ejemplo: En una carpeta tengo los archivos: 123file-a, 123file-b, 123file-c, 123file-d, 123file-e y 123file-f

      Ejecuto:

      ls | egrep "123file-[ab]"

      Me devuelve:

      123file-a
      123file-b

      Porque solo le pedí que me mostrara los archivos que terminaran en a y b.

      Signo de admiración

      El signo de admiración (!) permite negar o excluir caracteres.

      Ejemplo:

      ls 123file-[!c]

      Devuelve:

      123file-a 123file-b 123file-d 123file-e 123file-f

      Lista todos, excepto el que termina con la letra c.

       

       

      Mira este enlace, esta lindo:
      http://www.mailxmail.com/curso-linux-unix-sistemas/linux-unix-metacaracteres-rutas

       

       

       

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s