Ejercicio Práctico de Gestión de Archivos
En este paso final, reuniremos todo lo que hemos aprendido para resolver un problema práctico de gestión de archivos. Este ejercicio reforzará su comprensión de los comodines y demostrará su aplicación práctica.
Escenario
Imagine que es un administrador de sistemas responsable de organizar un directorio que contiene varios tipos de archivos. Necesita:
- Identificar y categorizar archivos por tipo
- Hacer una copia de seguridad de archivos importantes
- Extraer archivos basados en patrones de nombres específicos
Simulemos este escenario:
Creación de un Directorio de Proyecto Simulado
Primero, creemos un nuevo directorio de proyecto con varios tipos de archivos:
cd ~/project/wildcards_lab
mkdir project_files
cd project_files
## Crear varios tipos de archivos
touch project_doc_v1.txt project_doc_v2.txt project_doc_final.txt
touch data_2023_01.csv data_2023_02.csv data_2023_03.csv
touch config_dev.yml config_test.yml config_prod.yml
touch backup_script_v1.sh backup_script_v2.sh
touch image001.png image002.png image003.png
touch .project_config .project_log
Comprobemos nuestro directorio:
ls
Salida:
backup_script_v1.sh config_prod.yml data_2023_02.csv image002.png project_doc_v1.txt
backup_script_v2.sh config_test.yml data_2023_03.csv image003.png project_doc_v2.txt
config_dev.yml data_2023_01.csv image001.png project_doc_final.txt
Nota: Los archivos ocultos (que comienzan con .) no aparecerán en la salida básica de ls.
Organización de Archivos por Tipo
Ahora, creemos directorios para diferentes tipos de archivos y organicemos nuestros archivos:
## Crear directorios
mkdir docs configs scripts data images backups
## Copiar documentos de texto al directorio docs
cp *doc*.txt docs/
## Copiar archivos de configuración al directorio configs
cp *.yml configs/
## Copiar scripts al directorio scripts
cp *.sh scripts/
## Copiar archivos de datos al directorio data
cp *.csv data/
## Copiar imágenes al directorio images
cp *.png images/
Verifiquemos nuestra organización:
echo "Documentos:"
ls docs/
echo "Configuraciones:"
ls configs/
echo "Scripts:"
ls scripts/
echo "Archivos de datos:"
ls data/
echo "Imágenes:"
ls images/
Salida:
Documentos:
project_doc_final.txt project_doc_v1.txt project_doc_v2.txt
Configuraciones:
config_dev.yml config_prod.yml config_test.yml
Scripts:
backup_script_v1.sh backup_script_v2.sh
Archivos de datos:
data_2023_01.csv data_2023_02.csv data_2023_03.csv
Imágenes:
image001.png image002.png image003.png
Creación de una Copia de Seguridad Completa
Creemos una copia de seguridad completa que incluya todos los archivos importantes:
## Crear una copia de seguridad de todos los archivos que no sean imágenes
cp !(*.png|*backup*) backups/
## Veamos qué hay en nuestro directorio de copias de seguridad
ls backups/
Salida:
config_dev.yml config_test.yml data_2023_01.csv data_2023_03.csv project_doc_final.txt project_doc_v2.txt
config_prod.yml data_2023_02.csv project_doc_v1.txt
Búsqueda de Archivos con Patrones Específicos
Ahora, busquemos archivos que coincidan con patrones específicos:
## Encontrar todos los archivos de 2023
echo "Archivos de 2023:"
ls *2023*
## Encontrar todas las versiones finales o de producción
echo "Versiones Finales/de Producción:"
ls *final* *prod*
## Encontrar todos los archivos de la versión 2
echo "Archivos de la versión 2:"
ls *v2*
Salida:
Archivos de 2023:
data_2023_01.csv data_2023_02.csv data_2023_03.csv
Versiones Finales/de Producción:
config_prod.yml project_doc_final.txt
Archivos de la versión 2:
backup_script_v2.sh project_doc_v2.txt
Aplicación Práctica: Creación de un Paquete de Despliegue
Finalmente, creemos un paquete de despliegue que contenga solo configuraciones de producción y documentación final:
mkdir deployment_package
cp *prod*.yml *final*.txt deployment_package/
## Comprobar nuestro paquete de despliegue
ls deployment_package/
Salida:
config_prod.yml project_doc_final.txt
¡Enhorabuena! Ha completado con éxito un ejercicio práctico de gestión de archivos utilizando comodines de Linux. Estas habilidades serán invaluables para gestionar archivos de manera eficiente en un entorno Linux, automatizar tareas repetitivas y organizar su sistema de archivos de manera efectiva.