GNU/Linux >> Tutoriales Linux >  >> Linux

16 ejemplos útiles de comandos 'cp' para principiantes de Linux

Al ser un usuario de Linux, copiar archivos y directorios es una de las operaciones diarias más comunes. El comando task.cp se usa para copiar los archivos y directorios de un lugar local a otro usando la línea de comandos. El comando cp está disponible en casi todos los sistemas operativos similares a Unix y Linux

En este artículo demostraremos 16 ejemplos útiles de comandos cp especialmente para los principiantes de Linux. La siguiente es la sintaxis básica del comando cp,

Copiar un archivo a otro archivo

# cp {opciones} archivo_origen archivo_objetivo

Copiar archivo(s) a otro directorio o carpeta

# cp {opciones} archivo_origen   directorio_destino 

Copiar directorio a directorio

# cp {opciones} directorio_fuente directorio_destino

Pasemos a los ejemplos prácticos del comando cp,

Ejemplo:1) Copiar archivo al directorio de destino

Supongamos que queremos copiar el archivo /etc/passwd en el directorio /mnt/backup para algún propósito de copia de seguridad, así que ejecute debajo del comando cp,

[email protected]:~# cp /etc/passwd /mnt/backup/
[email protected]:~#

Use el siguiente comando para verificar si se ha copiado o no.

[email protected]:~# ls -l /mnt/backup/
total 4
-rw-r--r-- 1 root root 2410 Feb  3 17:10 passwd
[email protected]:~#

Ejemplo:2 Copiar varios archivos al mismo tiempo

Supongamos que queremos copiar varios (/etc/passwd, /etc/group &/etc/shadow) al mismo tiempo en el directorio de destino (/mnt/backup)

[email protected]:~# cp /etc/passwd /etc/group /etc/shadow /mnt/backup/
[email protected]:~#

Ejemplo:3) Copiar los archivos de forma interactiva (-i)

Si desea copiar los archivos de un lugar a otro de forma interactiva, utilice la opción "-i" en el comando cp, la opción interactiva solo funciona si el directorio de destino ya tiene el mismo archivo, el ejemplo se muestra a continuación,

[email protected]:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'? y
[email protected]:~#

En el comando anterior, uno tiene que escribir manualmente 'y' para permitir la operación de copia

Ejemplo:4) Salida detallada durante el comando de copia (-v)

Si desea la salida detallada del comando cp, use la opción "-v", el ejemplo se muestra a continuación

[email protected]:~# cp -v /etc/fstab  /mnt/backup/
'/etc/fstab' -> '/mnt/backup/fstab'
[email protected]:~#

En caso de que quiera usar tanto el modo interactivo como el modo detallado, use las opciones "-iv"

[email protected]echi:~# cp -iv /etc/fstab  /mnt/backup/
cp: overwrite '/mnt/backup/fstab'? y
'/etc/fstab' -> '/mnt/backup/fstab'
[email protected]:~#

Ejemplo:5) Copiar un directorio o carpeta (-r o -R)

Para copiar un directorio de un lugar a otro use -r o -R opción en el comando cp. Supongamos que queremos copiar el directorio de inicio del usuario de linuxtechi a “/mn/backup”,

[email protected]:~# cp -r /home/linuxtechi /mnt/backup/
[email protected]:~#

En el comando anterior, la opción -r copiará los archivos y el directorio de forma recursiva.

Ahora verifique el contenido del directorio linuxtechi en el lugar de destino,

[email protected]:~# ls -l /mnt/backup/linuxtechi/
total 24
drwxr-xr-x 2 root root 4096 Feb  3 17:41 data
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_1.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_2.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_3.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_4.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_5txt
-rw-r--r-- 1 root root    0 Feb  3 17:41 file_5.txt
[email protected]:~#

Ejemplo:6) Archivar archivos y directorios durante la copia (-a)

Al copiar un directorio usando el comando cp, generalmente usamos la opción -r o -R, pero en lugar de la opción -r podemos usar '-a' que archivará los archivos y el directorio durante la copia, el ejemplo se muestra a continuación,

[email protected]:~# cp -a /home/linuxtechi /mnt/backup/
[email protected]:~# ls -l /mnt/backup/linuxtechi/
total 24
drwxr-xr-x 2 root root 4096 Feb  3 17:41 data
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_1.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_2.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_3.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_4.txt
-rw-r--r-- 1 root root    7 Feb  3 17:40 file_5txt
-rw-r--r-- 1 root root    0 Feb  3 17:39 file_5.txt
[email protected]:~#

Ejemplo:7) Copiar solo cuando el archivo de origen es más nuevo que el archivo de destino (-u)

Puede haber algunos escenarios en los que desee copiar los archivos solo si los archivos de origen son más nuevos que los de destino. Esto se puede lograr fácilmente usando “-u opción ” en el comando cp.

En el Ejemplo:6, hemos copiado el directorio de inicio de linuxtechi en la carpeta /mnt/backup, en la carpeta de inicio de linuxtechi tenemos 5 archivos txt, editemos un par de ellos y luego copiemos todos los archivos txt usando "cp -u".

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# echo "LinuxRocks" >> file_1.txt
[email protected]:/home/linuxtechi# echo "LinuxRocks" >> file_4.txt
[email protected]:/home/linuxtechi# cp -v -u  file_*.txt /mnt/backup/linuxtechi/
'file_1.txt' -> '/mnt/backup/linuxtechi/file_1.txt'
'file_4.txt' -> '/mnt/backup/linuxtechi/file_4.txt'
[email protected]:/home/linuxtechi#

Ejemplo:8) No sobrescriba el archivo existente mientras copia (-n)

Hay algunos escenarios en los que no desea sobrescribir los archivos de destino existentes mientras copia. Esto se puede lograr usando la opción '-n' en el comando 'cp'

[email protected]:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'?

Como puede ver en el comando anterior, nos solicita que sobrescribamos el archivo existente, si usa -n, entonces no solicitará la sobrescritura y tampoco sobrescribirá el archivo existente.

[email protected]:~# cp -n /etc/passwd /mnt/backup/
[email protected]:~#

Ejemplo:9) Crear enlaces simbólicos usando el comando cp (-s)

Supongamos que queremos crear un enlace simbólico de un archivo en lugar de copiarlo usando el comando cp, para tales escenarios use la opción '-s' en el comando cp, el ejemplo se muestra a continuación

[email protected]:~# cp -s /home/linuxtechi/file_1.txt /mnt/backup/
[email protected]:~# cd /mnt/backup/
[email protected]:/mnt/backup# ls -l file_1.txt
lrwxrwxrwx 1 root root 27 Feb  5 18:37 file_1.txt -> /home/linuxtechi/file_1.txt
[email protected]:/mnt/backup#

Ejemplo:10) Creación de enlace duro usando el comando cp (-l)

Si desea crear un enlace físico de un archivo en lugar de copiarlo con el comando cp, use la opción '-l'. ejemplo se muestra a continuación,

[email protected]:~# cp -l /home/linuxtechi/devops.txt /mnt/backup/
[email protected]:~#

Como sabemos en el vínculo físico, la fuente y el archivo vinculado tendrán los mismos números de inodo, verifiquemos esto usando los siguientes comandos,

[email protected]:~# ls -li /mnt/backup/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb  5 20:02 /mnt/backup/devops.txt
[email protected]:~# ls -li /home/linuxtechi/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb  5 20:02 /home/linuxtechi/devops.txt
[email protected]:

Ejemplo:11) Copiar atributos del origen al destino (solo atributos)

Si desea copiar solo los atributos del origen al destino mediante el comando cp, utilice la opción “–attributes-only

# cp --attributes-only /home/linuxtechi/distributions.txt  /mnt/backup/
# ls -l /home/linuxtechi/distributions.txt
-rw-r--r-- 1 root root 41 Feb  5 19:31 /home/linuxtechi/distributions.txt
# ls -l /mnt/backup/distributions.txt
-rw-r--r-- 1 root root 0 Feb  5 19:34 /mnt/backup/distributions.txt
#

En el comando anterior, hemos copiado el archivo distribution.txt del directorio de inicio de linuxtechi a la carpeta /mnt/backup, si lo ha notado, solo se copian los atributos y se omite el contenido. El tamaño de distribution.txt en la carpeta /mn/backup es cero bytes.

Ejemplo:12) Crear una copia de seguridad del archivo de destino existente mientras se copia (–copia de seguridad)

El comportamiento predeterminado del comando cp es sobrescribir el archivo en el destino si existe el mismo archivo, si desea hacer una copia de seguridad del archivo de destino existente durante la operación de copia, use '–backup 'opción, el ejemplo se muestra a continuación,

[email protected]:~# cp --backup=simple -v /home/linuxtechi/distributions.txt /mnt/backup/distributions.txt
'/home/linuxtechi/distributions.txt' -> '/mnt/backup/distributions.txt' (backup: '/mnt/backup/distributions.txt~')
[email protected]:~#

Si lo ha notado, se ha creado una copia de seguridad y se ha agregado un símbolo de tilde al final del archivo. la opción de copia de seguridad acepta los siguientes parámetros

  • ninguno, desactivado – nunca haga copias de seguridad
  • numerado, t – hacer copias de seguridad numeradas
  • existente, nulo – numerado si existen copias de seguridad numeradas, simple de lo contrario
  • simple, nunca – siempre haga copias de seguridad simples

Ejemplo:13) Conservar el modo, la propiedad y las marcas de tiempo al copiar (-p)

Si desea conservar los atributos del archivo como el modo, la propiedad y las marcas de tiempo mientras copia, use la opción -p en el comando cp, el ejemplo se muestra a continuación,

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# cp -p devops.txt /mnt/backup/
[email protected]:/home/linuxtechi# ls -l devops.txt
-rw-r--r-- 1 root root 37 Feb  5 20:02 devops.txt
[email protected]:/home/linuxtechi# ls -l /mnt/backup/devops.txt
-rw-r--r-- 1 root root 37 Feb  5 20:02 /mnt/backup/devops.txt
[email protected]:/home/linuxtechi#

Ejemplo:14) No siga los enlaces simbólicos en la fuente mientras copia (-P)

Si no desea seguir los enlaces simbólicos de la fuente mientras copia, use la opción -P en el comando cp, el ejemplo se muestra a continuación

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# ls -l /opt/nix-release.txt
lrwxrwxrwx 1 root root 14 Feb  9 12:28 /opt/nix-release.txt -> os-release.txt
[email protected]:/home/linuxtechi#
[email protected]:/home/linuxtechi# cp -P os-release.txt /mnt/backup/
[email protected]:/home/linuxtechi# ls -l /mnt/backup/os-release.txt
-rw-r--r-- 1 root root 35 Feb  9 12:29 /mnt/backup/os-release.txt
[email protected]:/home/linuxtechi#

Nota: El comportamiento predeterminado del comando cp es seguir los enlaces simbólicos en la fuente mientras se copia.

Ejemplo:15) Copie los archivos y el directorio a la fuerza usando la opción -f

Puede haber algunos escenarios en los que el archivo de destino existente no se pueda abrir y eliminar. Y si tiene un archivo saludable que se puede copiar en lugar del archivo de destino existente, use el comando cp junto con la opción -f

[email protected]:/home/linuxtechi# cp -f distributions.txt  /mnt/backup/
[email protected]:/home/linuxtechi#

Ejemplo:16) Copie archivos dispersos utilizando la opción disperso en el comando cp

Sparse es un archivo normal que contiene una secuencia larga de cero bytes que no consume ningún bloque de disco físico. Uno de los beneficios del archivo disperso es que no consume mucho espacio en disco y la operación de lectura en ese archivo sería bastante rápida.

Supongamos que tenemos una imagen de nube dispersa llamada "ubuntu-cloud.img"

[email protected]:/home/linuxtechi# du -sh ubuntu-cloud.img
12M     ubuntu-cloud.img
[email protected]:/home/linuxtechi# cp --sparse=always ubuntu-cloud.img /mnt/backup/
[email protected]:/home/linuxtechi# du -sh /mnt/backup/ubuntu-cloud.img
0       /mnt/backup/ubuntu-cloud.img
[email protected]:/home/linuxtechi#

Se pueden usar diferentes opciones al usar el parámetro disperso en el comando cp,

  • disperso=automático
  • escaso-siempre
  • disperso=nunca

Eso es todo de este artículo, espero que te ayude a comprender el comando cp de manera más efectiva. Comparta sus opiniones y comentarios


Linux
  1. 10 ejemplos de comandos 'rm' para principiantes de Linux

  2. 10 ejemplos útiles de comandos ncat (nc) para sistemas Linux

  3. 10 ejemplos de comandos Cat de Linux para principiantes

  4. Tutorial de comando cd de Linux para principiantes (8 ejemplos)

  5. Comando killall de Linux para principiantes (8 ejemplos)

Tutorial de comandos OD de Linux para principiantes (6 ejemplos)

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)

Comando de localización de Linux para principiantes (8 ejemplos)

16 ejemplos prácticos del comando Linux LS para principiantes

Comando mv de Linux explicado para principiantes (8 ejemplos)