Comandos en linux cp (comando para copiar en linux)
Dentro de los comandos en linux cp forma parte de esos comandos que tenemos que conocer en mayor o menor medida para copiar archivos y carpetas y es que Linux es un sistema operativo informático de código abierto que puede utilizarse en la mayoría de los dispositivos.
Es conocido por su seguridad y su gran estabilidad. Una de las cosas que hace que Linux destaque sobre otros sistemas operativos es su interfaz de línea de comandos. Hay muchos tipos diferentes de comandos en Linux, cada uno con su propio uso específico. En este post, echaremos un vistazo a uno de los comandos más comunes utilizados en Linux.
Para entender bien este comando tenemos que tener muy claros los conocimientos sobre que es una ruta absoluta y relativa linux, ya que tendremos que interactuar con los ficheros que queremos copiar desde un punto A a un punto B.
El comando cp de linux nos permitirá copiar ficheros dentro de nuestro sistema operativo con muchísimas opciones que nos darán un gran control sobre la copia de ficheros en linux
Si ya eres usuario de Linux, aquí también encontrarás algunos consejos útiles.
- Uso básico del comando cp en linux
- Copia simple de un archivo en linux
- Copiar ficheros con cuidado de sobre-escribir ficheros
- Copia simple de varios archivos en linux
- Copia de un fichero en linux con rutas absolutas
- Copiar fichero con un nombre diferente en destino
- Copiar directorios completos en linux
- Cómo conservar los atributos al copiar
- ✔️ Resumen con las mejores opciones del comando cp de linux
Uso básico del comando cp en linux
El uso básico que tenemos que conocer cuando tratamos de copiar uno o mas archivos de una ubicación de nuestro disco a otra es la siguiente:
cp [Origen] [Destino]
Para esta copia es necesario tener claro la diferencia entre las rutas relativas y absolutas en linux, para no equivocarnos desde o a donde deseamos copiar.
Copia simple de un archivo en linux
En este ejemplo copiaremos el fichero comandosenlinux.txt (que esta ubicado en la misma carpeta donde nos encontramos) a la carpeta /home/admin/
cp comandosenlinux.txt /home/admin/
Tenemos que dejar claro que el directorio de destino debería ser una ruta absoluta para mayor seguridad.
Copiar ficheros con cuidado de sobre-escribir ficheros
Cuando copiamos ficheros en algun sitio delicado de nuestro disco duro, queremos que segun se copian los ficheros antes de sobre-escribir ningun fichero el sistema nos pregunte.
Esto lo conseguimos con el comando:
cp -i linux /home/ficheros
En este ejemplo el fichero "linux" lo copiaremos en la ruta /home/ficheros, pero en el caso de que este fichero ya exista, el sistema nos avisara de que si queremos sobre-escribirlo.
Copia simple de varios archivos en linux
En este ejemplo copiaremos varios archivos con un solo comando, ósea sin tener que repetir el mismo comando varias veces a un destino. La idea es copiar comandosenlinux1.txt, comandosenlinux2.txt y comandosenlinux3.txt a /home/admin/ rápidamente y desde una misma línea de comandos .
cp comandosenlinux1.txt comandosenlinux2.txt comandosenlinux3.txt /home/admin/
Como vimos copiar varios archivos con el comando cp en Linux se convierte en una tarea muy sencilla.
Copia de un fichero en linux con rutas absolutas
Si no estamos ubicados en la carpeta del fichero que deseamos copiar podemos hacer uso de las rutas absolutas de esta manera:
cp /tmp/comandosenlinux.txt /home/admin/
Como veis en esta ocasión hemos copiado igualmente el fichero comandosenlinux.txt pero da igual donde estemos ubicados en este caso en nuestra linea de comandos, ya que la copia se realizara desde /tmp/comandosenlinux.txt a /home/admin igualmente.
Copiar fichero con un nombre diferente en destino
Podemos desear copiar un fichero en linux pero el fichero destino dejarle con otro nombre. Esta operación nos la facilita mucho el comando cp de linux como veremos a continuación.
cp comandosenlinux.txt /home/admin/comandosenlinux_basicos.txt
Con este ejemplo vemos que copiamos el fichero comandosenlinux.txt, pero en la ruta destino dejamos el nombre del archivo comandosenlinux_basicos.txt
Podemos también realizar la copia del fichero en la misma ruta que estemos, por ejemplo como copia de seguridad que es algo muy común a veces.
En este caso el comando seria asi:
cp comandosenlinux.txt comandosenlinux_basicos.txt
Copiar directorios completos en linux
Para copiar directorios completos en Linux, podemos utilizar el comando "cp" con la opción "-r" para copiar recursivamente todo el contenido de un directorio. Por ejemplo, si queremos copiar el directorio "mi-carpeta" en la ubicación actual a una nueva ubicación llamada "backup", podemos usar el siguiente comando: "cp -r mi-carpeta backup". Es importante asegurarse de incluir la opción "-r" para copiar el directorio recursivamente.
Cuando utilizamos el comando "cp -r" en Linux, es importante tener en cuenta que se copiará todo el contenido del directorio, incluyendo archivos y subdirectorios. Si hay algún archivo o subdirectorio que no deseamos copiar, podemos utilizar la opción "-exclude" para especificar el archivo o subdirectorio que queremos omitir.
Por ejemplo, si queremos excluir el archivo "archivo.txt" del directorio "mi-carpeta" al copiarlo a la nueva ubicación, podemos usar el siguiente comando:
cp -r --exclude=archivo.txt mi-carpeta backup
Además, es importante tener en cuenta que si la ubicación de destino ya existe, el comando "cp -r" sobrescribirá los archivos existentes en la ubicación de destino con los archivos del directorio fuente. Para evitar esto, podemos utilizar la opción "-n" para no sobrescribir los archivos existentes en la ubicación de destino.
Por ejemplo, si queremos copiar el directorio "mi-carpeta" a la ubicación "backup", pero no sobrescribir los archivos existentes, podemos usar el siguiente comando:
cp -r -n mi-carpeta backup
Linux es conocido por ser muy seguro y por tener muchos comandos que se pueden utilizar para realizar diferentes tareas. En esta entrada del blog, hemos destacado un de los más comunes, pero hay muchos más.
Cómo conservar los atributos al copiar
Cuando copiamos copiar archivos y carpetas en Linux, es importante conservar los atributos y permisos originales del archivo para evitar problemas de seguridad y funcionalidad. Para ello, podemos utilizar la opción "-p" o "--preserve" al ejecutar el comando "cp". Esta opción conservará los atributos como el propietario, grupo, permisos y fechas de creación y modificación.
Por ejemplo, si queremos copiar un archivo llamado "archivo.txt" y conservar sus atributos, podemos usar el siguiente comando:
cp -p archivo.txt /carpeta/de/destino/
También podemos utilizar el comando "rsync" para copiar archivos y directorios y conservar los atributos. Por ejemplo, para copiar un directorio llamado "mi_directorio" y conservar sus atributos, podemos usar el siguiente comando:
rsync -a mi_directorio /carpeta/de/destino/
Además, algunos programas de compresión de archivos, como "tar", permiten conservar los atributos originales al crear y extraer archivos comprimidos. Por ejemplo, para crear un archivo comprimido llamado "mi_archivo.tar.gz" y conservar los atributos originales, podemos usar el siguiente comando:
tar -czpf mi_archivo.tar.gz /ruta/de/origen/
✔️ Resumen con las mejores opciones del comando cp de linux
Opción | Descripción | Ejemplo |
---|---|---|
-a, --archive | Copia los archivos y directorios de manera recursiva, preservando los atributos como enlaces simbólicos, permisos, propiedad y fechas. | cp -a /origen /destino Copia el directorio origen a destino, manteniendo la estructura y atributos. |
-r, -R, --recursive | Copia directorios de manera recursiva. | cp -r /origen/directorio /destino Copia todo el contenido del directorio origen al destino. |
-v, --verbose | Muestra en pantalla lo que el comando está haciendo. | cp -v archivo.txt /destino Muestra el proceso de copiar archivo.txt al destino. |
-i, --interactive | Pide confirmación antes de sobrescribir. | cp -i archivo.txt /destino Pregunta antes de sobrescribir archivo.txt en el destino. |
-u, --update | Copia solo cuando el archivo de origen es más nuevo que el destino o cuando el archivo de destino no existe. | cp -u /origen /destino Actualiza los archivos en destino solo si son más antiguos. |
-b, --backup | Crea una copia de seguridad de cada archivo existente en el destino. | cp -b archivo.txt /destino Si archivo.txt existe en destino, crea un respaldo antes de copiar. |
--copy-contents | Copia el contenido de archivos especiales y de dispositivos. | cp --copy-contents /dev/sda1 /destino Copia el contenido del dispositivo sda1. |
-f, --force | Elimina archivos de destino que no pueden ser abiertos. | cp -f /origen /destino Fuerza la copia, eliminando archivos de destino si es necesario. |
--no-clobber | No sobrescribe un archivo existente. | cp --no-clobber /origen /destino No copia si el archivo ya existe en destino. |
-l, --link | En lugar de copiar, crea enlaces duros. | cp -l /origen /destino Crea enlaces duros en lugar de copiar. |
-s, --symbolic-link | Crea enlaces simbólicos en lugar de copiar. | cp -s /origen/archivo /destino/enlace Crea un enlace simbólico en destino. |
--sparse=WHEN | Controla cómo se tratan los archivos dispersos. | cp --sparse=always /origen /destino Trata de manejar archivos dispersos de manera eficiente. |
-L, --dereference | Sigue los enlaces simbólicos. | cp -L /origen/enlace /destino Copia el archivo al que apunta el enlace simbólico. |
-p, --preserve | Preserva los atributos especificados (como modo, propiedad, tiempos). | cp -p /origen /destino Preserva los atributos del archivo al copiar. |
--backup=CONTROL | Especifica cómo se deben manejar las copias de seguridad. | cp --backup=t /origen /destino Crea copias de seguridad de manera controlada. |
En resumen, para conservar los atributos al copiar en Linux podemos utilizar la opción "-p" en el comando "cp", el comando "rsync" o programas de compresión como "tar". Es importante tener en cuenta que conservar los atributos originales es crucial para mantener la integridad y seguridad de los archivos.
Si quieres convertirte en un usuario de Linux con más conocimientos y necesitas ayuda para empezar, no dejes de seguir leyendo nuestro artículos.
Te esperamos en el próximo.