cp con Bash

Comando cp para Linux

El comando cp (copy) de Linux se utiliza para copiar archivos y directorios de una ubicación a otra. Es uno de los comandos más utilizados para crear estructuras de datos.

cp [opciones] <origen> <destino>

Debemos tener en cuenta que cuando realizamos la copia de un fichero o directorio origen a un destino, el origen no se elimina, de ahí que sea una copia:) Puede sonar muy obvio esto último pero pienso que es necesario indicarlo.

Vamos a realizar la copia de fichero en la misma ubicación que estamos situados dándole de nombre a la copia fichero2.

cp fichero fichero2

Podemos ver mediante el comando ls de Linux que inicialmente existe únicamente fichero y después de realizar la copia existen fichero y fichero2.

Copiar un fichero usando el comando cp de Linux

Comando cp en otra ruta

Si necesitamos copiar un fichero en una ruta diferente podemos hacerlo de la siguiente forma. Mantendrá el mismo nombre.

cp fichero /ruta

Si preferimos cambiar el nombre del fichero únicamente debemos indicar la nueva ruta y agregar el nuevo_nombre.

cp fichero /ruta/nuevo_nombre

En la siguiente captura de pantalla podemos observar primero la copia de fichero cambiando el nombre a la ruta y de fichero por fichero2.

cp fichero Desktop/ciberseguridad/fichero2

En la siguiente copia que realizamos, únicamente se especifica el directorio en el que tenemos intención de copiar. Por esta razón fichero no cambia de nombre por fichero2.

cp fichero Desktop/ciberseguridad/

En la captura de pantalla se agregó un ls Desktop/ciberseguridad para verificar que las copias se realizaron correctamente.

Copiando fichero en una ruta diferente con cp de Linux

Copiando de ruta a ruta con Bash

Existe la posibilidad de copiar un fichero o directorio desde una ruta en la que no estamos ubicados en ese momento a otra en la que tampoco estamos. Obviamente debemos conocer las dos rutas con anterioridad, si no, resulta imposible.

cp diccionario/hola.txt ciberseguridad/nuevo_hola.txt

Sabemos que en el directorio Desktop existe un fichero llamado entrar.txt, lo vamos a copiar a la ruta Desktop/ciberseguridad con el nombre de salir.txt.

cp Desktop/entrar.txt Desktop/ciberseguridad/salir.txt
Comando cp con Linux para copiar un fichero desde una ruta diferente a la origen y destino

Opciones para cp en Linux

Existen diferentes opciones para realizar copias de ficheros y directorios con Linux. Voy a preparar una pequeña lista de algunas que se me vienen a la mente y son bastante útiles. Recuerda que puedes ver todas las opciones ejecutando el comando man cp -h.

Hay que recordar que las opciones van situadas antes del origen y destino de nuestra copia.

cp [opciones] <origen> <destino>

Algunas opciones para el comando de Linux cp:

  • -r (–recursive): Copia directorios de forma recursiva, es decir, también copia sus contenidos y subdirectorios.
  • -i (–interactive): Solicita confirmación antes de sobrescribir un archivo existente.
  • -u (–update): Copia solo si el archivo origen es más reciente que el archivo destino, o si el archivo destino no existe.
  • -v (–verbose): Muestra información detallada sobre el proceso de copia, indicando los archivos copiados.
  • -p (–preserve): Preserva los atributos originales del archivo, como permisos, propietario, grupo y fecha de modificación.
  • -a (–archive): Realiza una copia recursiva y preserva todos los atributos originales del archivo.

Lo más recomendable es jugar probando todas las opciones, nosotros vamos a probar una que me parece muy interesante.

Copia recursiva con Bash

Haciendo uso de la opción -r copiaremos un directorio dentro de otro, una vez realizada esa copia, combinaremos las opciones -r -i para realizar la misma copia recursiva pero de forma interactiva (la combinación de opciones la podemos hacer de dos formas «-r -i» o bien «-ri»). Así nos ira preguntando siempre antes de sobrescribir los ficheros. Debemos contestar escribiendo con la letra « de yes y pulsar intro.

Comando cp de Linux para realizar una copia recursiva interactiva con -r -i

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *