Introducción
Esta guía le mostrará cómo copiar archivos y directorios en Linux ejecutando comandos desde la línea de comandos. Además, los comandos enumerados a continuación detallan cómo crear copias de seguridad de todo el sistema o filtrar y copiar solo archivos específicos.
Uso del comando cp para copiar archivos y directorios en Linux
El cp
El comando es el método principal para copiar archivos y directorios en Linux. Prácticamente todas las distribuciones de Linux pueden usar cp
. El formato básico del comando es:
cp [additional_option] source_file target_file
Por ejemplo:
cp my_file.txt my_file2.txt
Este comando de Linux crea una copia de my_file.txt y cambia el nombre del nuevo archivo a mi_archivo2.txt .
Por defecto, el cp
El comando se ejecuta en el mismo directorio en el que está trabajando. Sin embargo, el mismo archivo no puede existir dos veces en el mismo directorio. Deberá cambiar el nombre del archivo de destino para copiarlo en la misma ubicación. Algunos usuarios agregarán _old , algunos agregarán un número y algunos incluso cambiarán la extensión de tres letras (por ejemplo, .bak en lugar de .txt ).
Es posible que no reciba una advertencia antes de que Linux sobrescriba su archivo; tenga cuidado o consulte a continuación el –i
opción.
Opciones adicionales
Se pueden usar opciones adicionales en combinación con cp
comando:
–v
detallado :muestra el progreso de múltiples archivos copiados–p
preservar :mantiene los mismos atributos, como la fecha de creación y los permisos de archivo–f
fuerza :fuerce la copia eliminando primero un archivo existente–i
interactivo :solicitudes de confirmación, muy recomendable–R
recursivo :copia todos los archivos y subcarpetas en un directorio–u
actualizar :copiar solo si la fuente es más reciente que el destino
Cómo copiar un archivo a otro directorio en Linux
Para copiar un archivo del directorio en el que está trabajando a una ubicación diferente, use el comando:
cp my_file.txt /new_directory
No necesita cambiar el nombre del archivo a menos que ya haya uno con el mismo nombre en el directorio de destino.
Para especificar una ruta para el archivo fuente:
cp /etc/my_file.txt /new_directory
Esto le permite copiar sin tener que cambiar de directorio. El cp
El comando creará el /nuevo_directorio si no existe.
Para cambiar el nombre y copiar un archivo a una ruta diferente:
cp my_file.txt /new_directory/my_file2.txt
Esta opción es útil para crear copias de seguridad de archivos de configuración o para copiar datos a un dispositivo de almacenamiento.
Copiar varios archivos de un directorio a otro en Linux
Es posible que deba copiar más de un archivo a la vez.
Enumere cada archivo que se copiará antes del directorio de destino:
cp my_file.txt my_file2.txt my_file3.txt /new_directory
Este ejemplo creó una copia de los tres archivos en el /nuevo_directorio carpeta.
Use un comodín para especificar todos los archivos que comparten una cadena de caracteres:
cp /pictures/*.jpg /new_directory
Esto encontraría todos los archivos con el .jpg extensión en el /imágenes y cópielos en el directorio /new_directory carpeta.
Para copiar un carpeta completa y sus subcarpetas y archivos , use el –R
opción:
cp –R /documents /new_directory
–R
significa recursivo, que significa "todo en esa ubicación". Esto copiaría todos los archivos, así como todos los directorios, al /nuevo_directorio carpeta.
Copiar usando el comando rsync
El comando rsync en Linux se usa para sincronizar o transferir datos entre dos ubicaciones. El uso es similar a cp
, pero hay algunas diferencias clave a tener en cuenta.
Para copiar un solo archivo, ingrese lo siguiente en una terminal:
rsync –a my_file.txt /new_directory/my_file_backup.txt
- El
–a
opción significa todos y se incluye conrsync
comandos:esto conserva subdirectorios, enlaces simbólicos y otros metadatos. - Reemplace my_file.txt archivo en el directorio de trabajo.
- Reemplazar /nuevo_directorio/ con el destino.
- Uso de my_file_backup.txt como indica el objetivo, se cambiará el nombre del archivo durante la copia.
Para copiar un directorio con rsync, ingrese lo siguiente:
rsync –a /etc/docker/ /home/backup/docker/
Esto copia el contenido de /etc/docker/ directorio a /home/backup/docker/ . Asegúrate de mantener las barras. Omitir la barra inclinada en el directorio de origen copiará el contenido en un subdirectorio.
Para omitir la copia de archivos, consulte nuestra guía sobre cómo excluir archivos y directorios en la transferencia de datos mediante el comando rsync.
Otras opciones
El ls
El comando es un socio útil para el cp
comando en Linux.
Para listar el contenido de un directorio ingrese el comando:
ls /directory
El ejemplo anterior muestra todos los archivos en /directorio . Use este comando después de copiar para verificar que los archivos se hayan copiado correctamente.
Para cambiar de directorio, utilice cd
y el nombre del directorio. Por ejemplo:
cd /other_directory
El símbolo del sistema cambiará para mostrar que ha cambiado de directorio.