Recopilar archivos a partir de un momento específico

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 del directorio /etc con un año de última modificación en 2022 al directorio /tmp/etc, preservando la estructura de directorios.

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo crear un script para automatizar el proceso de copia de archivos
  • Cómo usar el comando find para buscar archivos basados en su fecha de última modificación
  • Cómo usar el comando cp para copiar archivos preservando la estructura de directorios

🏆 Logros

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

  • Automatizar el proceso de copia de archivos de un directorio específico basado en su fecha de última modificación
  • Comprender cómo usar comandos comunes de shell como find y cp para manipular archivos y directorios
  • Aplicar tus conocimientos para resolver tareas reales de gestión de archivos

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/UserandGroupManagementGroup(["User and Group Management"]) 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/cp -.-> lab-301463{{"Recopilar archivos a partir de un momento específico"}} linux/cd -.-> lab-301463{{"Recopilar archivos a partir de un momento específico"}} linux/mkdir -.-> lab-301463{{"Recopilar archivos a partir de un momento específico"}} linux/find -.-> lab-301463{{"Recopilar archivos a partir de un momento específico"}} linux/sudo -.-> lab-301463{{"Recopilar archivos a partir de un momento específico"}} end

Crea el script para recopilar archivos

En este paso, crearás un script para copiar archivos del directorio /etc con un año de última modificación en 2022 al directorio /tmp/etc, preservando la estructura de directorios.

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

## Script: collect_files.sh
## Descripción: Copia archivos del directorio /etc con un año de última modificación en 2022 al directorio /tmp/etc, preservando la estructura de directorios.

source_dir="/etc"
target_dir="/tmp"
year="2022"

## Crea el directorio destino
mkdir -p "$target_dir"

## Usa el comando find para buscar archivos en el directorio fuente con un año de última modificación en 2022 y cópielos al directorio destino
find "$source_dir" -type f -newermt "$year-01-01"! -newermt "$year-12-31" -exec cp --parents --dereference "{}" "$target_dir" \;

echo "La copia de archivos se ha completado."

Este script utiliza el comando find para buscar archivos en el directorio /etc que se modificaron por última vez en el año 2022. Las opciones -newermt y ! -newermt se utilizan para filtrar los archivos según su fecha de última modificación. Luego, el comando cp se utiliza para copiar los archivos al directorio /tmp/etc, preservando la estructura de directorios.

  1. Guarda el archivo.

Prueba el script

En este paso, probarás el script collect_files.sh para asegurarte de que funcione como se espera.

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

Este comando ejecuta el script con privilegios elevados, lo cual es necesario para copiar archivos del directorio /etc.

  1. Después de que el script haya terminado de ejecutarse, revisa el directorio /tmp/etc para asegurarte de que los archivos con un año de última modificación de 2022 se hayan copiado correctamente.
  2. Verifica que la estructura de directorios se haya preservado. Por ejemplo, si el archivo /etc/fstab se copió, deberías ver el archivo en la ruta /tmp/etc/fstab.

Si el script está funcionando como se espera, has completado el proyecto. Si encuentras algún problema, revisa el script y las instrucciones, y realiza los ajustes necesarios.

✨ Revisar Solución y Practicar

Resumen

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