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
findpara buscar archivos basados en su fecha de última modificación - Cómo usar el comando
cppara 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
findycppara manipular archivos y directorios - Aplicar tus conocimientos para resolver tareas reales de gestión de archivos
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.
- Abre un editor de texto y crea un nuevo archivo llamado
collect_files.shen el directorio/home/labex/project. - 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.
- Guarda el archivo.
Prueba el script
En este paso, probarás el script collect_files.sh para asegurarte de que funcione como se espera.
- Abre una terminal y navega hasta el directorio
/home/labex/project. - 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.
- Después de que el script haya terminado de ejecutarse, revisa el directorio
/tmp/etcpara asegurarte de que los archivos con un año de última modificación de 2022 se hayan copiado correctamente. - Verifica que la estructura de directorios se haya preservado. Por ejemplo, si el archivo
/etc/fstabse 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.
Resumen
¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



