GNU/Linux >> Tutoriales Linux >  >> Linux

Comando cp en Linux:7 ejemplos prácticos

Uno de los comandos que debes conocer en Linux es cp. A menudo se le llama comando de copia en Linux y en realidad es la abreviatura de copia y hace exactamente lo que sugiere su nombre:copia.

cp se utiliza para copiar archivos de una ubicación a otra. cp también se puede usar para copiar directorios completos en una nueva ubicación. También puede usarlo para copiar varios archivos y directorios.

7 ejemplos de uso del comando cp en Linux

Veamos cómo puede usar el comando cp para varios propósitos:

1. Cómo copiar un archivo

El ejemplo más simple sería copiar un archivo. Para hacer eso, solo tiene que especificar el archivo de origen y el directorio o archivo de destino.

cp source_file target_directory/target_file

En el ejemplo anterior, si target_fille no existe en target_directory, creará target_file.

Sin embargo, si el nuevo_archivo ya existe, lo sobrescribirá sin preguntar. Lo que significa que el contenido del archivo de destino existente se cambiará con el contenido del archivo de origen.

Te mostraré cómo lidiar con la sobrescritura de archivos más adelante en este tutorial.

Tenga en cuenta :De forma predeterminada, los comandos cp sobrescriben si el archivo de destino ya existe. Este comportamiento se puede cambiar con la opción -n o -i, que se explica más adelante.

2. Cómo copiar varios archivos

Si desea copiar varios archivos a la vez en una nueva ubicación, puede hacerlo de la siguiente manera:

cp file1 file2 file3 fileN target_directory

Esto copiará todos los archivos especificados en el directorio de destino. Si el directorio de destino tiene archivos que coinciden con el nombre de los archivos de origen, se sobrescribirá.

3. Múltiples formas de lidiar con la sobrescritura al copiar archivos

Probablemente no siempre querrá que sus archivos de destino existentes se sobrescriban y eso es totalmente lógico.

Para evitar sobrescribir archivos existentes, puede usar la opción -n. De esta forma, cp no sobrescribirá los archivos existentes.

cp -n source_file target_directory

Pero tal vez quieras sobrescribir algunos archivos. Puede usar la opción interactiva -i y le preguntará si desea sobrescribir los archivos existentes.

cp -i source_file target_directory
cp: overwrite 'target_directory/source_file'?

Puede ingresar y para sobrescribir el archivo existente o n para no sobrescribirlo.

También hay una opción para hacer copias de seguridad automáticas. Si usa la opción -b con el comando cp, sobrescribirá los archivos existentes, pero antes de eso, creará una copia de seguridad de los archivos sobrescritos.

cp -b file.txt target_dir/file.txt
ls target_dir
file.txt file.txt~

La copia de seguridad del archivo termina con ~.

También puede usar la opción de actualización -u cuando se trata de sobrescribir. Con la opción -u, los archivos de origen solo se copiarán en la nueva ubicación si el archivo de origen es más nuevo que el archivo existente o si no existe en el directorio de destino.

Para resumir:

  • -i :Confirmar antes de sobrescribir
  • -n:sin sobrescribir
  • -b:sobrescritura con copia de seguridad
  • -u :sobrescribir si el archivo de destino es antiguo o no existe

4. Cómo copiar un directorio en Linux

También puede usar el comando cp para copiar un directorio en Linux, incluidos todos sus archivos y subdirectorios. Tienes que usar la opción -r aquí que significa recursivo.

cp -r source_dir target_dir

Esto copiará todo source_dir en target_dir. Ahora source_dir será un subdirectorio de target_dir.

ls target_dir
source_dir

5. Cómo copiar solo el contenido de un directorio, no el directorio en sí

En el ejemplo anterior, copió todo el directorio en una nueva ubicación.

Pero si solo desea copiar el contenido del directorio de origen en el directorio de destino, debe agregar /. al final del directorio de origen. Esto indicará que solo desea copiar el contenido del directorio de origen.

Veámoslo con un ejemplo:

ls source_dir
source_file_1 source_file2

Ahora copie el contenido del directorio fuente:

cp -r source_dir/. target_dir

Si comprueba el contenido del directorio de destino ahora, verá que solo se ha copiado el contenido del directorio de origen.

ls target_dir
source_file_1 source_file2

6. Cómo copiar varios directorios

También puede copiar varios directorios a la vez con el comando cp en Linux.

Solo utilícelo de la misma manera que lo hizo para un solo directorio.

cp -r source_dir1 source_dir2 source_dir3 target_dir

Siempre es el último argumento del comando el que se toma como directorio de destino.

Si desea copiar solo el contenido de varios directorios a la vez, también puede hacerlo:

cp -r source_dir1/. source_dir2/. source_dir3/. target_dir

De hecho, puede mezclar directorios, su contenido y archivos por completo.

cp -r source_dir1 source_dir2/. source_file target_dir
Consejo :Puede usar el modo detallado con la opción -v para ver qué archivos se están copiando.

7. Cómo conservar los atributos al copiar

Cuando copia un archivo a una nueva ubicación, sus atributos, como los permisos del archivo y las marcas de tiempo del archivo, cambian.

Si desea conservar los atributos del archivo original, puede copiar los archivos con la opción -p.

Veámoslo con un ejemplo.

ls -l /etc/services 

-rw-r--r-- 1 root root 19183 Dec 26  2016 /etc/services

Si trato de copiar este archivo normalmente, sus atributos cambiarán:

cp /etc/services .
ls -l services 
-rwxrwxrwx 1 abhishek abhishek 19183 Nov 25 20:45 service

Pero si utilizo la opción p, el archivo copiado conservará el modo, la propiedad y la marca de tiempo.

cp -p /etc/services .
ls -l services 
-rw-r--r-- 1 abhishek abhishek 19183 Dec 26 2016 services

Como puede ver, conservó el modo de acceso y la marca de tiempo del archivo fuente con la opción -p.

¡Pero espera! ¿No se suponía que también preservaría la propiedad de los archivos fuente? Pero aquí el propietario (raíz) del archivo fuente se ha cambiado a abhishek.

Esto se debe a que solo la raíz tiene permiso para cambiar la propiedad de un archivo propiedad de la raíz. Si usa la opción -p con un archivo que no es propiedad de root, conservará la propiedad. O bien, puede ejecutar el comando con sudo para conservar la propiedad de un archivo propiedad de root.

También puede especificar los atributos que desea conservar. Pero luego tendrás que usar la opción –preserve.

cp --preserve=timestamp /etc/services .
ls -l services 
-rw-r--r-- 1 abhishek abhishek 19183 Dec 26  2016 services

Como puede ver en el resultado anterior, solo conservó la marca de tiempo del archivo fuente.

Puede explorar más a fondo el comando cp navegando por su página de manual. Los ejemplos que se muestran aquí son los más comunes que usará como usuario de Linux, administrador de sistemas o desarrollador de software.

Si te gustó este tutorial, comparte este artículo en las redes sociales y varios foros.


Linux
  1. Comando de apagado de Linux:5 ejemplos prácticos

  2. 5 ejemplos prácticos del comando dd en Linux

  3. Comando cp de linux

  4. 10 ejemplos prácticos de comandos de Linux nm

  5. Ejemplos de comandos sa en Linux

12 ejemplos prácticos de In Command en Linux

15 ejemplos prácticos del comando Rsync en Linux

5 ejemplos prácticos de Tail Command en Linux

Comando echo en Linux:7 ejemplos prácticos

Ejemplos prácticos de comando ping en Linux

Ejemplos de comandos id en Linux