Bash scripting : comment compresser tous les fichiers d’un répertoire
Dans le monde des systèmes de type Linux et Unix, les scripts bash sont un outil puissant pour automatiser les tâches répétitives, telles que la compression de fichiers. La compression de fichiers à l’aide d’un script bash peut rationaliser considérablement votre flux de travail, en particulier lorsqu’il s’agit de sauvegardes de routine, de transferts de fichiers ou de traitement par lots. Cet article vous guidera dans la création de scripts bash simples mais efficaces pour compresser des fichiers et des répertoires, en incorporant des arguments pour rendre votre script plus polyvalent et adaptable à différentes situations.
Dans ce tutoriel, vous allez apprendre :
- Comment créer un script bash de base pour compresser des fichiers dans un répertoire spécifique
- Amélioration du script pour accepter le chemin d’accès au répertoire comme argument
- Options de compression avancées pour la compression sélective des fichiers
Premiers pas avec les scripts Bash pour la compression de fichiers
Avant de plonger dans les exemples, il est important de comprendre que les scripts bash peuvent automatiser des tâches que vous effectueriez normalement dans une interface de ligne de commande. Pour la compression des fichiers, nous utilisons la commande zip, qui doit être préinstallée dans la plupart des distributions Linux. Si ce n’est pas le cas, vous pouvez l’installer à l’aide du gestionnaire de paquets de votre système (par exemple, sudo apt install zip pour les systèmes basés sur Debian).
Script de base pour compresser tous les fichiers d’un répertoire : Cet exemple illustre un script simple permettant de compresser tous les fichiers d’un répertoire spécifié. Le script définit le répertoire cible et le nom du fichier zip de sortie. Il utilise ensuite la commande
zippour compresser l’intégralité du répertoire.#!/bin/bash Directory to be zipped DIRECTORY='/path/to/directory' Output zip file name ZIPFILE='output.zip' Zipping all files in the directory zip -r $ZIPFILE $DIRECTORYRemplacez
/path/to/directorypar le chemin d’accès réel au répertoire que vous souhaitez compresser. Exécutez le script en l’enregistrant sous formede zip_script.sh, en le rendant exécutable avecchmod +x zip_script.sh, puis en exécutant./zip_script.sh.Script acceptant le chemin d’accès au répertoire comme argument : Ce script amélioré prend un chemin d’accès au répertoire comme argument, ce qui le rend plus flexible. Vous pouvez compresser différents répertoires sans modifier le script à chaque fois. Il vérifie si un chemin d’accès au répertoire est fourni ; Si ce n’est pas le cas, il affiche un message d’utilisation.
#!/bin/bash Checking if a directory path is provided if [ "$#" -ne 1 ]; then echo "Usage: $0 [directory path]" exit 1 fi DIRECTORY=$1 ZIPFILE='output.zip' Zipping the specified directory zip -r $ZIPFILE $DIRECTORYExécutez ce script en passant le chemin d’accès au répertoire en argument, par exemple
./zip_script.sh /chemin/vers/répertoire.Compression sélective de fichiers : Cet exemple avancé montre comment compresser sélectivement des fichiers en fonction de certains critères, tels que le type de fichier. Ce script compresse tous les fichiers
.txtdans le répertoire fourni.#!/bin/bash Checking if a directory path is provided if [ "$#" -ne 1 ]; then echo "Usage: $0 [directory path]" exit 1 fi DIRECTORY=$1 ZIPFILE='text_files.zip' Zipping all .txt files in the specified directory find $DIRECTORY -type f -name "*.txt" | zip $ZIPFILE -@Ce script peut être modifié pour compresser des fichiers en fonction de différents critères, tels que la taille du fichier ou la date de modification.
Conclusion
Grâce à ces exemples, vous avez appris à créer des scripts bash efficaces pour la compression de fichiers sous Linux. En commençant par un script de base pour compresser un répertoire entier, nous sommes passés à des scripts qui peuvent prendre des chemins de répertoire comme arguments, offrant ainsi une plus grande flexibilité. Enfin, nous avons exploré la compression sélective de fichiers, permettant des opérations de compression plus spécifiques et ciblées. Le script Bash est une compétence polyvalente dans l’administration Linux et permet d’économiser beaucoup de temps et d’efforts lors de la gestion de fichiers et de répertoires.
N’oubliez pas que ces scripts ne sont que des points de départ. Vous pouvez les étendre et les modifier pour répondre à vos besoins spécifiques, qu’il s’agisse d’automatiser les sauvegardes, de gérer les archives de fichiers ou de traiter des données. Grâce à la puissance des scripts bash, vous pouvez transformer des tâches manuelles fastidieuses en processus efficaces et automatisés.



