gnulinux – Comando CP
Cuando estudiamos un poco de nuestro adorable gnulinux vamos aprendiendo comandos para luego utilizarlos en scripting o vaya saber donde quiera uno. En fin, muchas veces un simple copiar y pegar en un entorno grafico es suficiente y otras veces necesitamos de un comando como CP que nos ayude en alguna actividad automatizada por medio de scripting y otros, por eso hoy vemos el Comando CP
La función principal de CP es sencilla: copiar uno o más archivos a una ubicación especificada por el usuario. Para ello, hay dos datos especialmente importantes: el nombre del archivo y el lugar de destino de la operación. La sintaxis del comando CP está estructurada de la siguiente manera:
cp [Origen] [Destino]
Origen puede ser remplazado por uno o mas archivos que quisiéramos copiar hacia el destino.
El comando CP de Linux también puede realizar otras tareas. Para ello, al comando se le puede añadir un término que contenga un parámetro:
cp [Parámetro(s)] [Origen(es)] [Destino]
Puedes introducir los siguientes parámetros (flags) en el campo para que el trabajo de copia sea más complejo o más fácil.
Parámetros | Descripción | Ejemplo |
---|---|---|
-a | Copia el archivo con la misma configuración de permisos y metadatos que el original. | cp -a texto.txt /home/usuario/carpeta_de_destino/ |
–archive | Copia el archivo con la misma configuración de permisos y metadatos que el original. | cp –archive texto.txt /home/usuario/carpeta_de_destino/ |
-b | Crea una copia en la memoria intermedia (también llamada buffer) si el archivo original y el destino tienen el mismo nombre, pero diferente contenido. | cp -b texto.txt /home/usuario/carpeta_de_destino/ |
–backup | Crea una copia en la memoria intermedia (también llamada buffer) si el archivo original y el destino tienen el mismo nombre, pero diferente contenido. | cp –backup texto.txt /home/usuario/carpeta_de_destino/ |
–backup=numbered | Crea un nuevo archivo numerado si el archivo original y el de destino tienen el mismo nombre de archivo, pero diferente contenido. | cp –backup==numbered texto.txt /home/usuario/carpeta_de_destino/ |
–backup=existing | Crea un nuevo archivo numerado si el archivo original y el de destino tienen el mismo nombre de archivo, pero diferente contenido – y ya existen copias de seguridad numeradas. | cp –backup==existing texto.txt /home/usuario/carpeta_de_destino/ |
-d | Copia los enlaces simbólicos. | cp -d texto.txt /home/usuario/carpeta_de_destino/ |
-f | Obliga a sobrescribir al copiar. | cp -f texto.txt /home/usuario/carpeta_de_destino/texto.txt |
–force | Obliga a sobrescribir al copiar. | cp –force texto.txt /home/usuario/carpeta_de_destino/texto.txt |
-i | Pide permiso antes de sobrescribir archivos con el mismo nombre. | cp -i texto.txt /home/usuario/carpeta_de_destino/ |
–interactive | Pide permiso antes de sobrescribir archivos con el mismo nombre. | cp –interactive texto.txt /home/usuario/carpeta_de_destino/ |
-l | Crea un enlace duro en lugar de una copia. | cp -l texto.txt /home/usuario/carpeta_de_destino/ |
–link | Crea un enlace duro en lugar de una copia. | cp –link texto.txt /home/usuario/carpeta_de_destino/ |
-n | Los archivos existentes nunca se sobrescribirán. | cp -n texto.txt /home/usuario/carpeta_de_destino/ |
–no-cobbler | Los archivos existentes nunca se sobrescribirán. | cp –no-cobbler texto.txt /home/usuario/carpeta_de_destino/ |
-p | Los atributos del archivo original se heredan al copiar. | cp -p texto.txt texto1.txt |
–preserve | Los atributos del archivo original se heredan al copiar. | cp –preserve texto.txt texto1.txt |
–preserve=mode | El modo del archivo original se hereda al copiar. | cp –preserve==mode texto.txt texto1.txt |
–preserve=ownership | Las propiedades del archivo original se heredan al copiar. | cp –preserve==ownership texto.txt texto1.txt |
–preserve=timestamp | La marca de tiempo del archivo original se hereda al copiar. | cp –preserve==timestamp texto.txt texto1.txt |
–preserve=links | Los enlaces del archivo original se heredan al copiar. | cp –preserve==links texto.txt texto1.txt |
–preserve=context | El contexto de seguridad del archivo original se hereda al copiar. | cp –preserve==context texto.txt texto1.txt |
–preserve=xattr | Los atributos extendidos del archivo original se heredan al copiar. | cp –preserve==xattr texto.txt texto1.txt |
–preserve=all | Todos los atributos del archivo original se heredan al copiar. | cp –preserve==all texto.txt texto1.txt |
-P | Los enlaces simbólicos se guardan como tales al copiar. | cp -P texto.txt /home/usuario/carpeta_de_destino/ |
–no-dereference | Los enlaces simbólicos se guardan como tales al copiar. | cp –no-dereference texto.txt /home/usuario/capeta_de_destino/ |
-r | Los directorios, incluidos los subdirectorios, se copian de forma recursiva. | cp -r /home/usuario/carpeta_de_origen/ /home/usuario/carpeta_de_destino/ |
-R | Los directorios, incluidos los subdirectorios, se copian de forma recursiva. | cp -R /home/usuario/carpeta_de_origen/ /home/usuario/carpeta_de_destino/ |
–recursive | Los directorios, incluidos los subdirectorios, se copian de forma recursiva. | cp –recursive /home/usuario/carpeta_de_origen/ /home/usuario/carpeta_de_destino/ |
-s | Crea un enlace simbólico para el archivo original. | cp -s texto.txt /home/usuario/carpeta_de_destino/ |
–symbolic-link | Crea un enlace simbólico para el archivo original. | cp –symbolic-link texto.txt /home/usuario/carpeta_de_destino/ |
-S | Sobrescribe un sufijo de backup al copiar con –backup. | cp –backup=simple -S texto.txt /home/usuario/carpeta_de_destino/ |
–suffix=own_suffix | Sobrescribe con su propio sufijo el sufijo de backup al copiar con –backup. | cp –backup=simple –suffix=own_suffix texto.txt /home/usuario/carpeta_de_destino/ |
-u | Copia el archivo solamente si el archivo de destino es más antiguo que el original. | cp -u texto.txt /home/usuario/carpeta_de_destino/texto.txt |
–update | Copia el archivo solamente si el archivo de destino es más antiguo que el original. | cp –update texto.txt /home/usuario/carpeta_de_destino/texto.txt |
-v | Emite un mensaje al terminar la copia. | cp -v texto.txt texto1.txt |
–verbose | Emite un mensaje al terminar la copia. | cp –verbose texto.txt texto1.txt |
Ejemplos para el uso de CP
A partir del gran número de parámetros disponibles para el comando copy se deduce que el comando CP en Linux puede utilizarse para más que simplemente copiar archivos y carpetas. Combinando los distintos parámetros, se pueden abordar tareas mucho más complejas. Los siguientes tres ejemplos reflejan escenarios de aplicación típicos en la vida cotidiana de un usuario de Linux.
Backup numerado
Supongamos que estás trabajando en un archivo y quieres crear un backup del mismo de forma más o menos regular. Para que también puedas hacer un seguimiento de los cambios y posiblemente volver a un estado anterior, se crean archivos individuales. Para ello utilizamos la opción de backup ampliado.
cp -f -v --backup=numbered texto.txt texto.txt
Clasificación de archivos con wildcards
Tienes una carpeta llena de diferentes archivos: las imágenes, aplicaciones y los documentos están mezclados entre sí. Supongamos que quieres copiar todas las imágenes a una carpeta diferente. En lugar de introducir una a una todas las imágenes en el comando, puedes trabajar con el asterisco (*), que sirve de wildcard. En nuestro ejemplo, sustituimos el nombre completo del archivo por un asterisco y solo introducimos las extensiones de los archivos.
cp *.jpg *.png /home/usuario/imágenes
Copia de directorios
La copia recursiva incluye a una carpeta y todas sus subcarpetas. Por lo tanto, la estructura del directorio se copia entera. Esto no funciona con la copia sencilla del comando CP: si intentas copiar una carpeta sin el parámetro correspondiente, te saldrá un mensaje de error. El parámetro que debes usar es el ‘-r’, también conocido como ‘–recursivo’ o ‘-R’.
cp -r -u /home/usuario/original/ /home/usuario/backups/
Ahora solo queda que te sientes a probar todo lo que hay disponible sobre el Comando CP en gnulinux y charan….. de mucho practicar nacen los maestros! Abrazo grande y por más #CulturaLibre
Filed under: CulturaLibre,gnulinux,scripting - @ 7 mayo, 2022 11:28 pm
Etiquetas: comando, cp, CulturaLibre, gnulinux, scripting, SoftwareLibre, terminal