Bienvenido/a
0412 523 4622 - 0273 514 7775

Cómo copiar archivos y directorios en Linux

Copiar archivos y directorios es una de las tareas más comunes que realizará cuando trabaje en la línea de comandos. En Linux, hay varios comandos para copiar archivos, siendo cp y rsync los más populares.

Es una práctica común utilizar el comando cp al copiar archivos y el comando rsync al copiar directorios.

Para poder copiar archivos y directorios, debe tener al menos permisos de lectura en el archivo de origen y permiso de escritura en el directorio de destino.

El comando cp es una utilidad de línea de comandos para copiar archivos y directorios en sistemas Linux de una ubicación a otra en la misma máquina.

El caso de uso más simple es copiar un archivo en el directorio de trabajo actual. Por ejemplo, para copiar un archivo nombrado file.txt en el directorio actual, file_backup.txt ejecute el siguiente comando:

cp file.txt file_backup.txt

 

Si el archivo de destino existe, se sobrescribirá. Para solicitar confirmación utilice la opción -i.

cp -i file.txt file_backup.txt

 

Cuando se usa el comando cp para copiar un archivo, el nuevo archivo será propiedad del usuario que ejecute el comando. Utilice la opción -p para conservar el modo de archivo, la propiedad y las marcas de tiempo:

cp -p file.txt file_backup.txt

 

Otra opción que puede ser útil es -v. Al usar esta opción, el comando imprimirá lo que se está haciendo:

cp -v file.txt file_backup.txt

 

'file.txt' -> 'file_backup.txt'

 

Para copiar un archivo a otro directorio, debe especificar la ruta absoluta o relativa al directorio de destino. En el siguiente ejemplo estamos copiando el archivo file.txt al /backup directorio:

cp file.txt /backup

 

Al especificar solo el nombre del directorio como destino, el archivo copiado tendrá el mismo nombre que el archivo original.

Si desea copiar el archivo con un nombre diferente, debe especificar el nombre de archivo deseado:

cp file.txt /backup/new_file.txt

 

El comando anterior copiará el archivo en el directorio especificado como new_file.txt.

También es posible copiar varios archivos a la vez especificando los nombres de los archivos seguidos por el directorio de destino:

cp file.txt file1.txt file2.txt directory

 

Al copiar varios archivos, el destino debe ser un directorio.

El comando cp también le permite utilizar la coincidencia de patrones. Por ejemplo, para copiar todos los archivos png del directorio actual al /backup directorio que usaría:

cp *.png /backup

 

Para copiar un directorio, incluyendo todos sus archivos y subdirectorios, use la opción -R. En el siguiente ejemplo estamos copiando el directorio ~/Pictures~/Pictures_backup:

cp -R Pictures Pictures_backup

 

El comando anterior creará un directorio de destino y copiará recursivamente todos los archivos y subdirectorios desde el origen al directorio de destino.

Las opciones utilizadas al copiar archivos también se pueden usar al copiar el directorio. La principal diferencia es que al copiar directorios debe utilizar la opción -R switch.

Rsync es una utilidad de línea de comandos rápida y versátil que sincroniza archivos y directorios entre dos ubicaciones. Se puede utilizar para copiar archivos en ubicaciones locales y remotas.

Rsync proporciona una serie de opciones que controlan cada aspecto de su comportamiento. La opción más utilizada es -a la de copiar directorios de forma recursiva, transferir dispositivos especiales y de bloques, preservar enlaces simbólicos, tiempos de modificación, grupos, propiedad y permisos.

Para copiar un solo archivo de una ubicación a otra, debería usar el siguiente comando:

rsync -a file.txt file_backup.txt

 

Si el archivo de destino existe, rsync lo sobrescribirá.

Puede usar el mismo comando que el de arriba para copiar un directorio con rsync:

rsync -a /var/www/public_html/ /var/www/public_html_backup/

 

Rsync amenaza los directorios de origen que terminan con una barra inclinada /diferente. Si agrega una barra diagonal al directorio de origen, solo copiará el contenido del directorio al directorio de destino. Cuando se omite la barra diagonal final, rsync copiará el directorio de origen dentro del directorio de destino.

En esta guía, le mostramos cómo copiar archivos y directorios en sistemas basados ​​en Linux y Unix utilizando las utilidades cp y rsync.