Comando cp

Publicado por Andrea Navarro en


¿Qué hace el comando cp?

El comando cp es utilizado copiar directorios y archivos.

cp [OPCION]... [-T] ORIGEN DESTINO
cp [OPCION]... ORIGEN... DIRECTORIO
cp [OPCION]... -t DIRECTORIO ORIGEN...

Opciones

OpciónFunción
-a
--archive
Copia de manera recursiva y mantiene todos los atributos de los archivos originales
--attributes-onlyCopia solamente los atributos de los archivos especificados pero no su contenido
-b
--backup
Se crea una copia de seguridad de los archivos existentes antes de sobrescribirlos
-f
--force
Se fuerza la sobreescritura de archivos sin preguntar al usuario
-i --interactiveSe pide confirmación al usuario antes de sobreescribir archivos
-HSi el archivo especificado como ORIGEN es un link simbólico se copia el archivo apuntado por el link simbólico
-l
--link
Se crean hard links de los archivos en vez de copiarlos
-L
--dereference
Cuando se copia de forma recursiva se copian todos los archivos apuntados por los links simbólicos
-n
--no-clobber
No se sobreescriben los archivos existentes
-P
--no-dereference
Cuando se copia de forma recursiva NO se copian los archivos apuntados por los links simbólicos, solamente se copian los links simbólicos
--pAl copiar archivos se preservan los atributos mode, ownership y timestamps
--preserve[=LISTA_ATRI]Al copiar archivos se preservan los atributos listados
--no-preserve=LISTA_ATRIAl copiar archivos NO se preservan los atributos listados
-R
-r
--recursive
Los archivos se copian de manera recursiva
-s
--symbolic-link
Crea links simbólicos en lugar de copiar archivos
-S
--suffix=SUFIJO
Especifica el sufijo agregado al archivo al realizar backup
-T
--no-target-directory
Indica que el destino no es un directorio
-t
--target-directory
Especifica el directorio destino
-u
--update
Se mueve el archivo solo si es más reciente que el archivo en el destino o si el archivo de destino no existe

Ejemplos prácticos

Copiar archivos

cp -i archivo.txt /ruta/destino

Se copiará el archivo archivo.txt al directorio /ruta/destino.

Al especificar la opción -i se verificará si existe un archivo con el mismo nombre en el directorio destino. Si este existe se mostrará el mensaje de confirmación:

mv: overwrite '/ruta/destino/archivo.txt'?

Es posible copiar varios archivos listando los archivos separados por espacio

cp archivoA.txt archivoB.txt archivoC.txt /ruta/destino

Utilizando comodines pueden agruparse archivos similares:

cp archivo* /ruta/destino

En este caso se copiarán todos los archivos cuyo nombre comience con archivo

cp *.txt /ruta/destino

En este otro caso se copiarán todos los archivos cuya extensión sea txt

Copiar directorio

cp -R directorio /ruta/destino

Se copiará el directorio directorio y todo su contenido al directorio /ruta/destino

Renombrar archivo o directorio

cp archivo.txt /ruta/destino/archivo2.txt

Al utilizar el comando cp especificando un nombre de archivo en el destino este será copiado con el nuevo nombre

Crear links simbólicos

cp -sR ruta/origen /ruta/destino/

Al agregar la opción -s en lugar de copiar los propios archivos se crearán links simbólicos que apuntarán a ellos.

Crear hard links

cp -lR ruta/origen /ruta/destino/

Al agregar la opción -l en lugar de copiar los propios archivos se crearán hard links que apuntarán a ellos.

Preservar atributos de los archivos

cp -Rp ruta/origen /ruta/destino/

Al agregar la opción -p se preservarán los atributos mode, ownership y timestamps de los archivos copiados.

cp -a ruta/origen /ruta/destino/

La opción -a copia de manera recursiva los archivos manteniendo todos los atributos originales incluyendo todos los permiso

Actualizar un directorio

cp -uR directorio/origen/ directorio/destino/

La opción -u especifica que solo copiarán los archivos que no existan en el directorio destino y solo se sobreescribirán aquellos archivos que sean más recientes en el origen que en el destino.

Copiar directorio realizando backup del destino

cp -bR /ruta/origen/ /ruta/destino

Se copiará el contenido dentro de /ruta/origen a /ruta/destino. Debido a la opción -b cada archivo que ya se encuentre en el destino será renombrado con ~ al final del nombre y el archivo del origen tomará su lugar.

Si el directorio origen contiene:

archivoA.txt archivoB.txt

Y el directorio destino

archivoB.txt archivoC.txt

Luego de ejecutar el comando cp con la opción -b el directorio destino contendrá:

archivoA.txt archivoB.txt archivoB.txt~ archivoC.txt

Agregando la opción -S es posible especificar un sufijo diferente para los archivos sobre los cuales se ha realizado backup

cp -bSR ~bk /ruta/origen/ /ruta/destino

¿Preguntas? ¿Comentarios?

Si tenés dudas, o querés dejarnos tus comentarios y consultas, sumate al grupo de Telegram de la comunidad JuncoTIC!
¡Te esperamos!

Categorías: Linux

Andrea Navarro

- Ingeniera en Informática - Docente universitaria - Investigadora