Comando cp
¿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ón | Función |
---|---|
-a | Copia de manera recursiva y mantiene todos los atributos de los archivos originales |
--attributes-only | Copia 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 --interactive | Se pide confirmación al usuario antes de sobreescribir archivos |
-H | Si el archivo especificado como ORIGEN es un link simbólico se copia el archivo apuntado por el link simbólico |
-l | Se crean hard links de los archivos en vez de copiarlos |
-L | 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 |
--p | Al copiar archivos se preservan los atributos mode , ownership y timestamps |
--preserve[=LISTA_ATRI] | Al copiar archivos se preservan los atributos listados |
--no-preserve=LISTA_ATRI | Al 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 | Indica que el destino no es un directorio |
-t | 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