Comandos en linux cp, para copiar ficheros en Linux

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.

comando-copiar-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.

Índice

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.

comando copiar linux

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ónDescripciónEjemplo
-a, --archiveCopia 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, --recursiveCopia directorios de manera recursiva.cp -r /origen/directorio /destino
Copia todo el contenido del directorio origen al destino.
-v, --verboseMuestra en pantalla lo que el comando está haciendo.cp -v archivo.txt /destino
Muestra el proceso de copiar archivo.txt al destino.
-i, --interactivePide confirmación antes de sobrescribir.cp -i archivo.txt /destino
Pregunta antes de sobrescribir archivo.txt en el destino.
-u, --updateCopia 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, --backupCrea 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-contentsCopia el contenido de archivos especiales y de dispositivos.cp --copy-contents /dev/sda1 /destino
Copia el contenido del dispositivo sda1.
-f, --forceElimina archivos de destino que no pueden ser abiertos.cp -f /origen /destino
Fuerza la copia, eliminando archivos de destino si es necesario.
--no-clobberNo sobrescribe un archivo existente.cp --no-clobber /origen /destino
No copia si el archivo ya existe en destino.
-l, --linkEn lugar de copiar, crea enlaces duros.cp -l /origen /destino
Crea enlaces duros en lugar de copiar.
-s, --symbolic-linkCrea enlaces simbólicos en lugar de copiar.cp -s /origen/archivo /destino/enlace
Crea un enlace simbólico en destino.
--sparse=WHENControla cómo se tratan los archivos dispersos.cp --sparse=always /origen /destino
Trata de manejar archivos dispersos de manera eficiente.
-L, --dereferenceSigue los enlaces simbólicos.cp -L /origen/enlace /destino
Copia el archivo al que apunta el enlace simbólico.
-p, --preservePreserva los atributos especificados (como modo, propiedad, tiempos).cp -p /origen /destino
Preserva los atributos del archivo al copiar.
--backup=CONTROLEspecifica 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.

Subir