Introducción
El sistema de archivos de Linux proporciona herramientas potentes para administrar sus archivos y directorios. Uno de los comandos más esenciales que utilizará regularmente es el comando cp, que le permite copiar archivos y directorios de una ubicación a otra.
En este laboratorio, aprenderá a usar el comando cp para copiar archivos individuales y múltiples archivos a la vez. Esta habilidad fundamental es crucial para hacer copias de seguridad ( backing up ) de datos, organizar su sistema de archivos y administrar su entorno Linux de manera efectiva.
Al final de este laboratorio, podrá usar con confianza el comando cp con varias opciones para satisfacer sus necesidades de copia de archivos.
Creación de Directorios y Archivos
Antes de que podamos practicar la copia de archivos, necesitamos crear algunos directorios y archivos con los que trabajar. En este paso, creará una estructura de directorios y algunos archivos de muestra.
Primero, navegue al directorio del proyecto donde trabajará:
cd ~/project
Ahora, creemos un directorio llamado data-files que contendrá nuestros archivos de muestra:
mkdir data-files
No debería ver ninguna salida después de ejecutar este comando, lo cual es normal para muchos comandos de Linux cuando se ejecutan con éxito.
A continuación, naveguemos a este nuevo directorio:
cd data-files
Ahora, creemos tres archivos de texto vacíos que usaremos para nuestros ejercicios de copia:
touch apple.txt orange.txt grape.txt
El comando touch crea archivos vacíos si no existen, o actualiza la hora de modificación si ya existen.
Verifiquemos que nuestros archivos se crearon correctamente listando el contenido del directorio actual:
ls -l
Debería ver una salida similar a esta:
total 0
-rw-r--r-- 1 labex labex 0 [date] apple.txt
-rw-r--r-- 1 labex labex 0 [date] grape.txt
-rw-r--r-- 1 labex labex 0 [date] orange.txt
La salida muestra que hemos creado con éxito tres archivos vacíos (el tamaño del archivo es de 0 bytes).
En este punto, su estructura de directorios se ve así:
~/project/
└── data-files/
├── apple.txt
├── orange.txt
└── grape.txt
Trabajaremos con estos archivos en los siguientes pasos, y aprenderá cómo copiarlos a diferentes ubicaciones.
Copia de un Solo Archivo
En este paso, aprenderá a copiar un solo archivo de una ubicación a otra utilizando el comando cp.
La sintaxis básica del comando cp es:
cp [opciones] archivo_fuente destino
Donde:
archivo_fuentees el archivo que desea copiardestinoes donde desea copiar el archivo (puede ser un directorio o un nuevo nombre de archivo)
Actualmente estamos en el directorio data-files. Agreguemos algo de contenido a nuestro archivo apple.txt para que podamos verificar que el contenido se copie correctamente:
echo "This is sample content for the apple file." > apple.txt
El símbolo > redirige la salida del comando echo al archivo, sobrescribiendo cualquier contenido existente.
Ahora, copiemos el archivo apple.txt al directorio padre (que es ~/project) con un nuevo nombre:
cp apple.txt ../apple_copy.txt
Desglosando este comando:
cpes el comando de copiaapple.txtes el archivo fuente que queremos copiar../apple_copy.txtespecifica que queremos copiar al directorio padre (..) con el nuevo nombre de archivoapple_copy.txt
Verifiquemos que el archivo se copió correctamente comprobando su contenido:
cat ../apple_copy.txt
Debería ver la siguiente salida:
This is sample content for the apple file.
Esto confirma que nuestro archivo se copió correctamente con su contenido intacto.
Después de esta operación, su estructura de directorios ahora se ve así:
~/project/
├── data-files/
│ ├── apple.txt
│ ├── orange.txt
│ └── grape.txt
└── apple_copy.txt
Copia de Múltiples Archivos a la Vez
En este paso, aprenderá a copiar varios archivos a la vez a un nuevo directorio. Esto es particularmente útil cuando necesita hacer una copia de seguridad u organizar varios archivos simultáneamente.
Primero, volvamos al directorio del proyecto (ya que actualmente estamos en el directorio data-files):
cd ~/project
Ahora, creemos un nuevo directorio llamado backup donde copiaremos nuestros archivos:
mkdir backup
Antes de copiar los archivos, agreguemos algo de contenido a los archivos de texto restantes para que podamos verificar mejor el proceso de copia:
echo "This is sample content for the orange file." > data-files/orange.txt
echo "This is sample content for the grape file." > data-files/grape.txt
Ahora, copiemos todos los archivos de texto del directorio data-files al directorio backup utilizando un patrón comodín (wildcard):
cp data-files/*.txt backup/
En este comando:
cpes el comando de copiadata-files/*.txtutiliza el comodín*para que coincida con todos los archivos con la extensión.txten el directoriodata-filesbackup/es el directorio de destino donde queremos copiar los archivos
Verifiquemos que todos los archivos se copiaron correctamente listando el contenido del directorio backup:
ls -l backup/
Debería ver una salida similar a esta:
total 12
-rw-r--r-- 1 labex labex 41 [date] apple.txt
-rw-r--r-- 1 labex labex 41 [date] grape.txt
-rw-r--r-- 1 labex labex 42 [date] orange.txt
También verifiquemos el contenido de uno de los archivos copiados para asegurarnos de que los datos se copiaron correctamente:
cat backup/orange.txt
Debería ver:
This is sample content for the orange file.
Esto confirma que todos nuestros archivos se copiaron correctamente al directorio backup con su contenido intacto.
Después de esta operación, su estructura de directorios ahora se ve así:
~/project/
├── data-files/
│ ├── apple.txt
│ ├── orange.txt
│ └── grape.txt
├── backup/
│ ├── apple.txt
│ ├── orange.txt
│ └── grape.txt
└── apple_copy.txt
Opciones Avanzadas de Copia de Archivos
En este paso, aprenderá sobre algunas opciones útiles del comando cp que pueden hacer que sus tareas de copia de archivos sean más eficientes.
Comencemos volviendo al directorio del proyecto:
cd ~/project
Preservando los Atributos del Archivo con -p
Cuando copia archivos, es posible que desee preservar los atributos originales del archivo, como las marcas de tiempo (timestamps), la propiedad (ownership) y los permisos. La opción -p le permite hacer esto:
cp -p data-files/apple.txt backup/apple_preserved.txt
Comparemos el archivo original y la copia preservada:
ls -l data-files/apple.txt backup/apple.txt backup/apple_preserved.txt
Notará que backup/apple_preserved.txt tiene la misma marca de tiempo que el archivo original, mientras que backup/apple.txt (que copiamos anteriormente sin la opción -p) tiene una marca de tiempo más reciente.
Creando Copias Recursivas con -r
Para copiar directorios junto con su contenido, debe usar la opción -r (recursiva). Creemos una estructura de directorios anidada para demostrar esto:
mkdir -p data-files/nested/deep
echo "This is a nested file." > data-files/nested/nested_file.txt
echo "This is a deep nested file." > data-files/nested/deep/deep_file.txt
Ahora, copiemos todo el directorio data-files y su contenido a una nueva ubicación:
cp -r data-files data-files-backup
Verifiquemos que la estructura de directorios y los archivos se copiaron correctamente:
find data-files-backup -type f | sort
Debería ver una salida que enumera todos los archivos en la estructura de directorios copiada:
data-files-backup/apple.txt
data-files-backup/grape.txt
data-files-backup/nested/deep/deep_file.txt
data-files-backup/nested/nested_file.txt
data-files-backup/orange.txt
Modo Interactivo con -i
Al copiar archivos, puede sobrescribir accidentalmente los archivos existentes. La opción -i (interactivo) le pregunta antes de sobrescribir cualquier archivo:
cp -i data-files/apple.txt backup/apple.txt
Dado que backup/apple.txt ya existe, verá un mensaje que le pregunta si desea sobrescribirlo:
cp: overwrite 'backup/apple.txt'?
Puede responder con y para sobrescribir o n para cancelar.
Estas opciones avanzadas hacen que el comando cp sea aún más potente y flexible para sus necesidades de administración de archivos.
Resumen
En este laboratorio, aprendió a usar el comando cp de Linux para copiar archivos y directorios de manera efectiva. Comenzó con los conceptos básicos de la creación de directorios y archivos, luego progresó a la copia de archivos individuales y múltiples archivos a la vez.
Conceptos clave cubiertos:
Copia Básica de Archivos: Usando el comando
cppara copiar un solo archivo de una ubicación a otra.cp archivo_fuente destinoCopiando Múltiples Archivos: Usando comodines (wildcards) para copiar varios archivos en un solo comando.
cp directorio_fuente/*.txt directorio_destino/Opciones Avanzadas:
-p: Preservando los atributos del archivo (marcas de tiempo (timestamps), permisos, etc.)-r: Copiando recursivamente directorios y su contenido-i: Modo interactivo para evitar sobrescrituras accidentales
Estas habilidades de copia de archivos son fundamentales para una administración de archivos eficaz en Linux. Ya sea que esté haciendo copias de seguridad de archivos importantes, organizando sus directorios o implementando aplicaciones, el comando cp será una herramienta esencial en su conjunto de herramientas de Linux.
Recuerde que la línea de comandos de Linux ofrece muchas herramientas poderosas para la manipulación de archivos, y el comando cp es solo una de ellas. A medida que continúe su viaje en Linux, descubrirá cómo estas herramientas se pueden combinar para realizar operaciones de archivos complejas de manera eficiente.



