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. Hay varios comandos para copiar archivos en Linux, siendo cp
y rsync
las herramientas más utilizadas.
Es una práctica común usar el comando cp
para copiar archivos y rsync
para copiar directorios.
Para poder copiar archivos y directorios, debe tener al menos permisos de lectura en el archivo de origen y permisos de escritura en el directorio de destino.
Copiar archivos con el Comando cp #
En los sistemas operativos Linux y Unix, el comandocp
se utiliza para copiar archivos y directorios.
El caso de uso más sencillo es copiar un archivo en el directorio de trabajo actual. Por ejemplo, para copiar un archivo llamado file.txt
a un archivo llamado file_backup.txt
en el directorio actual, debe ejecutar el siguiente comando:
cp file.txt file_backup.txt
Si el archivo de destino existe, se sobrescribirán. Para obtener un mensaje de confirmación antes de sobrescribir los archivos, utilice la opción -i
.
cp -i file.txt file_backup.txt
De forma predeterminada, cuando se utiliza el comando cp
para copiar un archivo, el nuevo archivo será propiedad del usuario que ejecuta 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 imprime lo que se está haciendo:
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
Copiar un archivo a un directorio #
Para copiar un archivo a un directorio, especifique la ruta absoluta o relativa al directorio. Cuando se omite el directorio de destino, el archivo se copia en el directorio actual.
En el siguiente ejemplo, estamos copiando el archivo file.txt
al directorio /backup
:
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 al directorio especificado como new_file.txt
.
Copiar varios archivos #
Para copiar varios archivos y directorios a la vez, especifique los nombres de los archivos y directorios de origen seguidos con el directorio de destino como último argumento:
cp file.txt dir file1.txt file2.txt dir1
Al copiar varios archivos, el destino debe ser un directorio.
El comando cp
también le permite usar coincidencia de patrones. Por ejemplo, para copiar todos los archivos .png
del directorio actual al directorio /backup
, usaría:
cp *.png /backup
Copiar directorios con el comando cp #
Para copiar un directorio, incluidos todos sus archivos y subdirectorios, utilice el comando opción -R
o -r
. En el siguiente ejemplo, estamos copiando el directorio Pictures
a Pictures_backup
:
cp -R Pictures Pictures_backup
El comando anterior creará el directorio de destino y copiará recursivamente todos los archivos y subdirectorios del origen al directorio de destino.
Si el directorio de destino ya existe, el directorio de origen y su contenido se copian en el directorio de destino. Para copiar solo los archivos y subdirectorios, pero no el directorio de destino, utilice la opción -T
:
cp -RT Pictures Pictures_backup
Las opciones utilizadas al copiar archivos también se pueden usar al copiar directorios. La principal diferencia es que al copiar directorios, debe usar la opción -R
.
Copiar archivos y directorios con el comando rsync #
rsync
es una utilidad de línea de comandos rápida y versátil que sincroniza archivos y directorios entre dos ubicaciones. Se puede usar para copiar archivos a ubicaciones locales y remotas.
rsync
incluye muchas opciones que controlan todos los aspectos de su comportamiento
La opción más útil es -a
que copia recursivamente directorios, transfiere dispositivos especiales y de bloques y conserva enlaces simbólicos, tiempos de modificación, grupo, propiedad y permisos.
Para copiar un solo archivo de uno a otro lugar, se debe ejecutar el siguiente comando:
rsync -a file.txt file_backup.txt
Si el archivo de destino existe, rsync
sobrescribirá.
El mismo comando se puede usar para copiar un directorio:
rsync -a /var/www/public_html/ /var/www/public_html_backup/
rsync
amenaza de manera diferente los directorios de origen que terminan con una barra diagonal /
. Si agrega una barra diagonal al final del directorio de origen, el comando copiará solo el contenido del directorio de origen al directorio de destino. Cuando se omite la barra diagonal final, rsync
copiará el directorio de origen dentro del directorio de destino. La opción más segura es incluir siempre la barra diagonal final /
tanto en el destino como en el origen.
Para obtener más información sobre rsync
consulte los siguientes artículos:
- Cómo usar Rsync para la Transferencia y Sincronización de Datos Locales y Remotos
- Cómo Excluir Archivos y directorios con Rsync
Conclusión #
Le hemos mostrado cómo copiar archivos y directorios en sistemas basados en Linux y Unix, utilizando el cp
y rsync
utilidades.
Leave a Reply