Duplicar y copiar documentos y registros es posiblemente la tarea más ampliamente reconocida y utilizada que realizará cuando trabaje con la línea de comandos de Linux. En Linux, hay algunas órdenes para duplicar documentos, las órdenes cp y rsync son las más conocidas.
La mayoría de los usuarios de Linux utilizan con frecuencia el comando cp al copiar archivos y el comando rsync al copiar directorios.
Antes de empezar
Para poder copiar archivos y directorios, debe tener al menos permisos de lectura en los archivos de origen y permisos de escritura en los directorios de destino.
Copiar archivos con el comando cp
El comando cp es una utilidad de línea de comandos para copiar archivos y directorios en un sistema Linux de una ubicación a otra en la misma máquina.
El caso de uso más simple es copiar archivos en el directorio de trabajo actual. Por ejemplo, para copiar un archivo llamado file.txt
en el directorio actual como file_backup.txt,
ejecuta el siguiente comando:
cp file.txt file_backup.txt
Si el archivo de destino existe, se sobrescribirán los archivos con el mismo nombre y extensión. Para solicitar confirmación, utilice las opciones -i
.
cp -i file.txt file_backup.txt
Al usar el comando cp para copiar archivos, los nuevos archivos serán propiedad del usuario que ejecuta el comando. Usa la opción -p
para preservar el modo de archivo, la propiedad y las marcas de tiempo:
cp -p file.txt file_backup.txt
Otra opción que podría 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'
Copiar archivos a otro directorio
Para copiar un archivo a otro directorio, debe especificar una ruta absoluta o relativa al directorio de destino. En el siguiente ejemplo, copiamos 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 un archivo con un nombre diferente, debe especificar el nombre de archivo deseado:
cp file.txt /backup/file_baru.txt
El comando anterior copiará el archivo en el directorio especificado como file_baru.txt
.
Copiar varios archivos
También es posible copiar varios archivos a la vez especificando los nombres de los archivos seguidos del 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 usar la coincidencia de patrones. Por ejemplo, para copiar todos los archivos png
del directorio actual al directorio /backup
que usarás:
cp *.png /backup
Cómo copiar un directorio en Linux con el comando cp
Para copiar un directorio, incluidos todos los archivos y subdirectorios, use la opción -R. En el siguiente ejemplo copiamos el directorio ~/Pictures
al directorio ~/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 utilizar al copiar directorios. La principal diferencia es que al copiar directorios necesita usar las opciones -R
.
Cómo copiar archivos y directorios en Linux con el comando rsync
Rsync es una utilidad de línea de comandos rápida y versátil. Rsync sincroniza archivos y directorios entre dos ubicaciones. Rsync se puede usar para copiar archivos en una ubicación local o en una ubicación remota.
Rsync proporciona una serie de opciones que controlan todos los aspectos de su comportamiento. Las opciones más utilizadas son -a
que copiará directorios recursivamente, transferirá dispositivos personalizados y bloqueará, conservará enlaces simbólicos, tiempos de modificación, grupos, propiedad y permisos de archivos.
Para copiar un archivo de una ubicación a otra, puede 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 anterior para copiar directorios con rsync:
rsync -a / var / www / public_html / / var / www / public_html_backup /
Tenga en cuenta que Rsync considera barras inclinadas /
al final de la fuente con un concepto diferente. Si agrega una barra inclinada al final del directorio de origen, solo copiará el contenido de el directorio al directorio de destino. Cuando se elimine la barra inclinada final, rsync copiará el directorio origen en el directorio de destino.
Conclusión
En esta guía, hemos aprendido cómo copiar archivos y directorios en sistemas basados en Linux y Unix utilizando las utilidades cp y rsync.
Cómo instalar y configurar Mono en Rocky Linux 8 y CentOS 8