Introduction
Dans ce projet, vous allez apprendre à copier les fichiers du répertoire /etc dont l'année de dernière modification est 2022 vers le répertoire /tmp/etc tout en conservant la structure de répertoires.
🎯 Tâches
Dans ce projet, vous allez apprendre :
- à créer un script pour automatiser le processus de copie de fichiers
- à utiliser la commande
findpour rechercher des fichiers en fonction de leur date de dernière modification - à utiliser la commande
cppour copier des fichiers tout en conservant la structure de répertoires
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- automatiser le processus de copie de fichiers à partir d'un répertoire spécifique en fonction de leur date de dernière modification
- comprendre comment utiliser des commandes shell courantes telles que
findetcppour manipuler des fichiers et des répertoires - appliquer vos connaissances pour résoudre des tâches de gestion de fichiers du monde réel
Créer le script de collecte de fichiers
Dans cette étape, vous allez créer un script pour copier les fichiers du répertoire /etc dont l'année de dernière modification est 2022 vers le répertoire /tmp/etc tout en conservant la structure de répertoires.
- Ouvrez un éditeur de texte et créez un nouveau fichier nommé
collect_files.shdans le répertoire/home/labex/project. - Ajoutez le code suivant au fichier
collect_files.sh:
#!/bin/zsh
## Script: collect_files.sh
## Description: Copie les fichiers du répertoire /etc dont l'année de dernière modification est 2022 vers le répertoire /tmp/etc tout en conservant la structure de répertoires.
source_dir="/etc"
target_dir="/tmp"
year="2022"
## Crée le répertoire cible
mkdir -p "$target_dir"
## Utilise la commande find pour rechercher les fichiers dans le répertoire source dont l'année de dernière modification est 2022 et les copie dans le répertoire cible
find "$source_dir" -type f -newermt "$year-01-01"! -newermt "$year-12-31" -exec cp --parents --dereference "{}" "$target_dir" \;
echo "File copying completed."
Ce script utilise la commande find pour rechercher les fichiers dans le répertoire /etc qui ont été modifiés pour la dernière fois en 2022. Les options -newermt et ! -newermt sont utilisées pour filtrer les fichiers en fonction de leur date de dernière modification. La commande cp est ensuite utilisée pour copier les fichiers dans le répertoire /tmp/etc, en conservant la structure de répertoires.
- Enregistrez le fichier.
Tester le script
Dans cette étape, vous allez tester le script collect_files.sh pour vous assurer qu'il fonctionne comme prévu.
- Ouvrez un terminal et accédez au répertoire
/home/labex/project. - Exécutez le script avec la commande suivante :
sudo sh collect_files.sh
Cette commande exécute le script avec des privilèges élevés, ce qui est nécessaire pour copier des fichiers à partir du répertoire /etc.
- Après l'exécution terminée du script, vérifiez le répertoire
/tmp/etcpour vous assurer que les fichiers dont l'année de dernière modification est 2022 ont été correctement copiés. - Vérifiez que la structure de répertoires a été conservée. Par exemple, si le fichier
/etc/fstaba été copié, vous devriez voir le fichier au chemin/tmp/etc/fstab.
Si le script fonctionne comme prévu, vous avez terminé le projet. Si vous rencontrez des problèmes, réexaminez le script et les instructions, et apportez les ajustements nécessaires.
Résumé
Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.



