Copiar archivos grandes con estructura preservada

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 proyecto, aprenderás a copiar archivos mayores de 10K desde el directorio /etc al directorio /tmp/etc, preservando la estructura de directorios. Esta es una habilidad útil para la gestión y organización de archivos en un sistema Linux.

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo crear un script para copiar archivos según su tamaño
  • Cómo usar el comando find para localizar archivos que cumplan criterios específicos
  • Cómo preservar la estructura de directorios al copiar archivos
  • Cómo ejecutar un script con privilegios elevados usando sudo

🏆 Logros

Después de completar este proyecto, serás capaz de:

  • Automatizar el proceso de copia de archivos según su tamaño
  • Mantener la estructura de directorios al copiar archivos
  • Usar efectivamente el comando find para localizar archivos que cumplan criterios específicos
  • Ejecutar scripts con privilegios elevados para acceder a archivos y directorios protegidos

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cp("File Copying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/FileandDirectoryManagementGroup -.-> linux/find("File Searching") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") subgraph Lab Skills linux/ls -.-> lab-301465{{"Copiar archivos grandes con estructura preservada"}} linux/cp -.-> lab-301465{{"Copiar archivos grandes con estructura preservada"}} linux/cd -.-> lab-301465{{"Copiar archivos grandes con estructura preservada"}} linux/mkdir -.-> lab-301465{{"Copiar archivos grandes con estructura preservada"}} linux/find -.-> lab-301465{{"Copiar archivos grandes con estructura preservada"}} linux/sudo -.-> lab-301465{{"Copiar archivos grandes con estructura preservada"}} end

Crea el script de copia

En este paso, crearás el script que copiará los archivos mayores de 10K desde el directorio /etc al directorio /tmp/etc.

  1. Abre el archivo copy.sh en el directorio /home/labex/project usando un editor de texto.
  2. Agrega el siguiente código al archivo:
#!/bin/zsh

## Este script copia archivos mayores de 10K desde un directorio fuente a un directorio destino.

## Define el directorio fuente y el directorio destino
source_dir="/etc"
target_dir="/tmp"

## Crea el directorio destino si no existe
mkdir -p "$target_dir"

## Usa el comando find para localizar archivos mayores de 10K y cópielos al directorio destino
find "$source_dir" -type f -size +10k -exec cp --parents --dereference "{}" "$target_dir" \;

echo "La copia de archivos ha finalizado."
  1. Guarda el archivo.

En este paso, has creado el script copy.sh que copiará los archivos mayores de 10K desde el directorio /etc al directorio /tmp/etc, preservando la estructura de directorios.

Ejecuta el script de copia

En este paso, ejecutarás el script copy.sh para copiar los archivos.

  1. Abre una terminal y navega hasta el directorio /home/labex/project.
  2. Ejecuta el script usando el siguiente comando:
sudo sh copy.sh

Esto ejecutará el script con privilegios elevados, lo que le permitirá copiar archivos a los que el usuario labex puede no tener acceso.

  1. Espera a que el script termine. Deberías ver el mensaje "La copia de archivos ha finalizado." cuando el script haya terminado.

En este paso, has ejecutado el script copy.sh para copiar los archivos mayores de 10K desde el directorio /etc al directorio /tmp/etc.

Verifica los archivos copiados

En este paso, verificaras que los archivos se hayan copiado correctamente.

  1. Abre un administrador de archivos y navega hasta el directorio /tmp/etc.
  2. Observa la estructura de directorios y los archivos que se han copiado. Deberías ver que se ha preservado la estructura de directorios y que solo se han copiado los archivos mayores de 10K.
  3. También puedes usar el comando ls -l en la terminal para listar los archivos y sus tamaños en el directorio /tmp/etc.

En este paso, has verificado que los archivos se han copiado correctamente desde el directorio /etc al directorio /tmp/etc.

¡Felicidades! Has completado con éxito el proyecto de copiar archivos mayores de 10K desde el directorio /etc al directorio /tmp/etc, preservando la estructura de directorios.

✨ Revisar Solución y Practicar

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.