Comando cp de Linux: Copia de archivos

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, explorarás el poderoso comando cp en Linux, una herramienta esencial para la gestión de archivos y directorios. Aprenderás cómo copiar archivos y directorios de manera eficiente, entenderás varias opciones para personalizar el proceso de copiado y aplicarás estas habilidades en escenarios prácticos. Al final de este laboratorio, estarás cómodo usando cp para tareas cotidianas de gestión de archivos y copias de seguridad.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/tree("Directory Tree Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cp("File Copying") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") linux/FileandDirectoryManagementGroup -.-> linux/wildcard("Wildcard Character") subgraph Lab Skills linux/tree -.-> lab-209744{{"Comando cp de Linux: Copia de archivos"}} linux/ls -.-> lab-209744{{"Comando cp de Linux: Copia de archivos"}} linux/cp -.-> lab-209744{{"Comando cp de Linux: Copia de archivos"}} linux/cat -.-> lab-209744{{"Comando cp de Linux: Copia de archivos"}} linux/cd -.-> lab-209744{{"Comando cp de Linux: Copia de archivos"}} linux/pwd -.-> lab-209744{{"Comando cp de Linux: Copia de archivos"}} linux/wildcard -.-> lab-209744{{"Comando cp de Linux: Copia de archivos"}} end

Comprendiendo el comando básico cp

El comando cp es fundamental para duplicar archivos en Linux. Comencemos con un escenario simple en el que necesitas crear una copia de seguridad de un documento importante.

En tu directorio de proyecto (~/project), hay un archivo llamado important_report.txt. Tu tarea es crear una copia de seguridad de este archivo en el mismo directorio.

Primero, veamos el contenido de tu directorio de proyecto:

ls ~/project

Deberías ver important_report.txt enumerado entre otros archivos. No te preocupes si ves archivos adicionales; por ahora nos centraremos en important_report.txt.

Ahora, creemos una copia de seguridad:

cp ~/project/important_report.txt ~/project/important_report_backup.txt

Este comando crea una copia de important_report.txt llamada important_report_backup.txt en el mismo directorio. Esto es lo que significa cada parte del comando:

  • cp: Este es el comando para copiar archivos.
  • ~/project/important_report.txt: Este es el archivo fuente que queremos copiar. El símbolo ~ representa tu directorio de inicio.
  • ~/project/important_report_backup.txt: Este es el archivo de destino. Estamos creando un nuevo archivo con "_backup" agregado al nombre.

Para verificar que la copia se creó correctamente, enumera el contenido del directorio nuevamente:

ls ~/project

Ahora deberías ver tanto important_report.txt como important_report_backup.txt. Si no ves el nuevo archivo, verifica que hayas escrito correctamente el comando cp.

Copiando archivos a diferentes directorios

A menudo, necesitarás copiar archivos a diferentes ubicaciones. Simulemos un escenario en el que estás organizando tu colección de música.

Primero, veamos si el directorio de música existe:

ls ~/project

Deberías ver un directorio llamado music enumerado. Si no está ahí, no te preocupes; se creó en el script de configuración.

Ahora, copiemos un archivo de música de tu directorio de proyecto al directorio de música:

cp ~/project/favorite_song.mp3 ~/project/music/

Este comando copia favorite_song.mp3 de tu directorio de proyecto al directorio music. Analicemos el comando:

  • cp: El comando de copia.
  • ~/project/favorite_song.mp3: El archivo fuente que estamos copiando.
  • ~/project/music/: El directorio de destino. Observa la barra diagonal final (/) - esto le dice a cp que music es un directorio.

Para verificar que el archivo se copió correctamente, enumera el contenido del directorio de música:

ls ~/project/music

Deberías ver favorite_song.mp3 enumerado. Si no lo ves, asegúrate de haber escrito correctamente el comando cp y de que favorite_song.mp3 exista en tu directorio de proyecto.

Copiando múltiples archivos a la vez

Puedes copiar múltiples archivos en un solo comando, lo cual es útil para operaciones por lotes. Vamos a organizar tu colección de documentos.

Primero, veamos si el directorio de documentos existe:

ls ~/project

Deberías ver un directorio llamado documents en la lista.

Ahora, copiemos múltiples archivos de texto a este directorio de documentos:

cp ~/project/report1.txt ~/project/report2.txt ~/project/notes.txt ~/project/documents/

Este comando copia report1.txt, report2.txt y notes.txt al directorio documents. Así es cómo funciona:

  • cp: El comando de copia.
  • ~/project/report1.txt ~/project/report2.txt ~/project/notes.txt: Estos son los archivos fuente que estamos copiando. Puedes enumerar tantos archivos como necesites, separados por espacios.
  • ~/project/documents/: Este es el directorio de destino.

Verifica que los archivos se hayan copiado:

ls ~/project/documents

Deberías ver los tres archivos (report1.txt, report2.txt y notes.txt) en la lista. Si falta alguno, revisa el comando cp para ver si hay errores tipográficos.

Usando la opción -i para copias interactivas

Al copiar archivos, es posible que te encuentres en situaciones en las que el destino ya contiene un archivo con el mismo nombre. La opción -i hace que cp sea interactivo, solicitándote confirmación antes de sobrescribir archivos existentes.

Simulemos este escenario:

Primero, veamos el contenido de un archivo existente:

cat ~/project/test_file.txt

Consejo: Si no estás familiarizado con el comando cat, no te preocupes; se explicará en detalle más adelante.

Deberías ver "Original content" (Contenido original) mostrado.

Ahora, intentemos copiar un archivo con el mismo nombre:

cp -i ~/project/new_test_file.txt ~/project/test_file.txt

Cuando se te solicite, escribe y y presiona Enter para sobrescribir el archivo. Si no quieres sobrescribirlo, escribe n y presiona Enter.

La opción -i significa "interactivo". Le dice a cp que pida confirmación antes de sobrescribir cualquier archivo existente. Esta es una medida de seguridad para evitar la pérdida accidental de datos.

Ahora, verifica el contenido del archivo:

cat ~/project/test_file.txt

Si elegiste sobrescribir el archivo, deberías ver "New content" (Nuevo contenido) mostrado. Si no, seguirás viendo "Original content" (Contenido original).

Copia recursiva con la opción -r

La opción -r te permite copiar directorios y su contenido de forma recursiva. Esto es especialmente útil para hacer copias de seguridad de estructuras de directorios completas.

Vamos a crear una copia de seguridad del directorio completo del sitio web:

cp -r ~/project/website ~/project/website_backup

Este comando copia el directorio website y todo su contenido a un nuevo directorio llamado website_backup. Esto es lo que significa cada parte:

  • cp: El comando de copia.
  • -r: Esta opción significa "recursiva". Le dice a cp que copie directorios y su contenido.
  • ~/project/website: Este es el directorio fuente que estamos copiando.
  • ~/project/website_backup: Este es el nuevo directorio donde estamos copiando todo.

Verifica que la copia de seguridad se haya creado correctamente:

ls -R ~/project/website_backup

Deberías ver toda la estructura de directorios y archivos listados. La opción -R con ls muestra el contenido de los directorios de forma recursiva.

Si no ves la estructura esperada, asegúrate de haber escrito correctamente el comando cp -r.

Preservando atributos de archivos con la opción -p

Al copiar archivos, es posible que desees preservar los atributos originales del archivo, como las marcas de tiempo y los permisos. La opción -p te permite hacer esto.

Veamos un ejemplo:

Primero, veamos los atributos del archivo original:

ls -l ~/project/old_file.txt

Observa la fecha y la hora mostradas.

Ahora, copiemos el archivo preservando sus atributos:

cp -p ~/project/old_file.txt ~/project/preserved_file.txt

La opción -p significa "preservar". Mantiene la hora de modificación, la hora de acceso y los permisos del archivo original.

Comparemos los atributos de ambos archivos:

ls -l ~/project/old_file.txt ~/project/preserved_file.txt

Deberías ver que ambos archivos tienen la misma fecha y hora. Si son diferentes, asegúrate de haber usado la opción -p con cp.

Usando comodines para copias selectivas

Los comodines (wildcards) te permiten copiar múltiples archivos basados en patrones. Esto es útil cuando quieres copiar archivos de un cierto tipo o con convenciones de nomenclatura específicas.

Vamos a copiar todos los archivos de texto al directorio text_files:

cp ~/project/*.txt ~/project/text_files/

Y copiemos todos los archivos PDF al directorio pdf_files:

cp ~/project/*.pdf ~/project/pdf_files/

Esto es lo que significa el comodín (*):

  • *.txt coincide con cualquier archivo que termine con ".txt"
  • *.pdf coincide con cualquier archivo que termine con ".pdf"

Esto te permite copiar múltiples archivos sin tener que enumerarlos individualmente.

Verifica que los archivos se hayan copiado correctamente:

ls ~/project/text_files
ls ~/project/pdf_files

Deberías ver todos los archivos.txt en el directorio text_files y todos los archivos.pdf en el directorio pdf_files.

Resumen

En este laboratorio, has dominado los usos esenciales del comando cp de Linux. Has aprendido cómo:

  1. Copiar archivos individuales
  2. Copiar archivos a diferentes directorios
  3. Copiar múltiples archivos a la vez
  4. Usar la opción -i para copias interactivas
  5. Copiar directorios de forma recursiva con la opción -r
  6. Preservar atributos de archivos con la opción -p
  7. Usar comodines (wildcards) para copias selectivas

Otras opciones de cp no cubiertas en este laboratorio incluyen:

  • -u: Copiar solo cuando el archivo fuente sea más reciente que el archivo de destino o cuando el archivo de destino no exista
  • -v: Modo detallado (verbose), que explica lo que se está haciendo
  • -n: No sobrescribir; no reemplazar un archivo existente
  • -l: Crear enlaces físicos (hard links) en lugar de copiar archivos
  • -s: Crear enlaces simbólicos (symbolic links) en lugar de copiar archivos

El comando cp es una herramienta poderosa para la gestión de archivos en Linux. Con estas habilidades, ahora estás preparado para manejar una amplia gama de tareas de copia de archivos de manera eficiente y efectiva.

Recursos