Cómo copiar archivos y directorios usando la terminal Linux

Suraj Joshi 18 julio 2021
  1. Copiar archivos usando el comando cp
  2. Copiar archivos a un directorio usando el comando cp
  3. Copiar varios archivos
  4. Copiar directorios usando el comando cp
  5. Copia los archivos y directorios usando el comando rsync
Cómo copiar archivos y directorios usando la terminal Linux

Podemos copiar archivos y directorios con los comandos cp y rsync usando el terminal de Linux. El comando cp se usa generalmente para copiar archivos mientras que el comando rsync se usa generalmente para copiar directorios.

Copiar archivos usando el comando cp

Usamos el comando cp en los sistemas operativos Linux y Unix para copiar archivos y directorios.

Para copiar el contenido del archivo abc.txt a otro archivo backup.txt, usamos el siguiente comando:

cp abc.txt backup.txt

Copia el contenido en abc.txt a backup.txt. Aquí ambos archivos deben estar en el directorio de trabajo actual.

Si el archivo de destino ya existe, el contenido del archivo de destino será sobrescrito.

Podemos añadir la bandera -i al comando cp para obtener un aviso de confirmación antes de copiar.

cp -i abc.txt backup.txt

Resultado:

cp: overwrite 'backup.txt'?

Si deseamos copiar el archivo, presionamos la tecla Y y pulsamos Enter.

Para obtener información o idea de lo que se está haciendo con el comando cp, podemos usar la bandera -v con el comando cp.

cp -v abc.txt backup.txt

Resultado:

'abc.txt' -> 'backup.txt'

Muestra que el contenido de abc.txt está siendo copiado a backup.txt.

Copiar archivos a un directorio usando el comando cp

Para copiar un archivo a un directorio, usamos el comando cp. El primer argumento del comando cp será el nombre del archivo a copiar, y el segundo argumento será la ruta absoluta o relativa del directorio en el que el archivo necesita ser copiado.

cp abc.txt ./test

Copia el archivo abc.txt del directorio de trabajo actual a la carpeta del directorio de trabajo actual test.

Para copiar el archivo en el directorio particular con un nombre diferente del archivo padre, podemos especificar el nombre del archivo como:

cp abc.txt ./test/test.txt

Se copia el fichero abc.txt en la carpeta test con el nombre test.txt.

Copiar varios archivos

Podemos copiar múltiples archivos y directorios a un directorio en particular usando el comando cp especificando todos los archivos y directorios de origen seguidos del directorio de destino al final.

cp abc.txt backup.txt test backup

Esto copia los archivos abc.txt y backup.txt y la carpeta test en la carpeta backup.

El comando cp también permite la concordancia de patrones.

cp *.txt backup

Esto copia todos los archivos con la extensión .txt en el directorio de trabajo actual a la carpeta backup.

Copiar directorios usando el comando cp

Usamos la bandera -r o -R junto con el comando cp para copiar el directorio y sus subdirectorios y archivos al directorio de destino.

cp -r pp Project

Copia todo el directorio pp y sus subdirectorios y archivos al directorio de destino Project.

En este ejemplo, habrá un directorio pp dentro del directorio Project.

Sin embargo, si sólo deseamos copiar archivos y subdirectorios, usamos la bandera -T junto con la bandera -R.

cp -RT pp Project

Copia los subdirectorios y archivos del directorio pp al directorio de destino Project.

Copia los archivos y directorios usando el comando rsync

rsync es una utilidad de línea de comandos para sincronizar archivos y directorios entre dos hosts. Si tanto la ruta de origen como la de destino representan el localhost, el comando rsync se comporta como un comando de copia.

rsync -a abc.txt backup.txt

Copia el contenido de abc.txt en backup.txt.

Aquí, -a flag cuenta para preservar los enlaces simbólicos, tiempos de modificación, grupo, propiedad, y permisos mientras se copia.

De manera similar, podemos copiar un directorio a otro directorio.

rsync -a /abc /backup-abc

Copia el contenido del directorio abc en el directorio de destino backup-abc.

Aquí, si omitimos la barra final /, entonces el directorio de origen se copiará dentro del directorio de destino.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Linux Files and Directories