Exercice Pratique de Gestion de Fichiers
Dans cette dernière étape, nous allons rassembler tout ce que nous avons appris pour résoudre un problème pratique de gestion de fichiers. Cet exercice renforcera votre compréhension des jokers et démontrera leur application pratique.
Scénario
Imaginez que vous êtes un administrateur système responsable de l'organisation d'un répertoire contenant différents types de fichiers. Vous devez :
- Identifier et catégoriser les fichiers par type
- Effectuer une sauvegarde des fichiers importants
- Extraire les fichiers en fonction de modèles de nommage spécifiques
Simulons ce scénario :
Création d'un Répertoire de Projet Simulé
Tout d'abord, créons un nouveau répertoire de projet avec différents types de fichiers :
cd ~/project/wildcards_lab
mkdir project_files
cd project_files
## Créer différents types de fichiers
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
Vérifions notre répertoire :
ls
Sortie :
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
Remarque : Les fichiers cachés (commençant par .) n'apparaîtront pas dans la sortie ls de base.
Organisation des Fichiers par Type
Maintenant, créons des répertoires pour différents types de fichiers et organisons nos fichiers :
## Créer des répertoires
mkdir docs configs scripts data images backups
## Copier les documents texte dans le répertoire docs
cp *doc*.txt docs/
## Copier les fichiers de configuration dans le répertoire configs
cp *.yml configs/
## Copier les scripts dans le répertoire scripts
cp *.sh scripts/
## Copier les fichiers de données dans le répertoire data
cp *.csv data/
## Copier les images dans le répertoire images
cp *.png images/
Vérifions notre organisation :
echo "Documents:"
ls docs/
echo "Configurations:"
ls configs/
echo "Scripts:"
ls scripts/
echo "Fichiers de données:"
ls data/
echo "Images:"
ls images/
Sortie :
Documents:
project_doc_final.txt project_doc_v1.txt project_doc_v2.txt
Configurations:
config_dev.yml config_prod.yml config_test.yml
Scripts:
backup_script_v1.sh backup_script_v2.sh
Fichiers de données:
data_2023_01.csv data_2023_02.csv data_2023_03.csv
Images:
image001.png image002.png image003.png
Création d'une Sauvegarde Complète
Créons une sauvegarde complète qui inclut tous les fichiers importants :
## Créer une sauvegarde de tous les fichiers autres que les images
cp !(*.png|*backup*) backups/
## Voyons ce qu'il y a dans notre répertoire de sauvegardes
ls backups/
Sortie :
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
Recherche de Fichiers avec des Motifs Spécifiques
Maintenant, recherchons les fichiers qui correspondent à des motifs spécifiques :
## Trouver tous les fichiers de 2023
echo "Fichiers de 2023:"
ls *2023*
## Trouver toutes les versions finales ou de production
echo "Versions Finales/Production:"
ls *final* *prod*
## Trouver tous les fichiers de la version 2
echo "Fichiers de la version 2:"
ls *v2*
Sortie :
Fichiers de 2023:
data_2023_01.csv data_2023_02.csv data_2023_03.csv
Versions Finales/Production:
config_prod.yml project_doc_final.txt
Fichiers de la version 2:
backup_script_v2.sh project_doc_v2.txt
Application Pratique : Création d'un Package de Déploiement
Enfin, créons un package de déploiement contenant uniquement les configurations de production et la documentation finale :
mkdir deployment_package
cp *prod*.yml *final*.txt deployment_package/
## Vérifier notre package de déploiement
ls deployment_package/
Sortie :
config_prod.yml project_doc_final.txt
Félicitations ! Vous avez réussi à effectuer un exercice pratique de gestion de fichiers en utilisant les jokers Linux. Ces compétences seront inestimables pour gérer efficacement les fichiers dans un environnement Linux, automatiser les tâches répétitives et organiser votre système de fichiers de manière efficace.