Recherche de site Web

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).

  1. 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 zip pour 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 $DIRECTORY

    Remplacez /path/to/directory par le chemin d’accès réel au répertoire que vous souhaitez compresser. Exécutez le script en l’enregistrant sous forme de zip_script.sh, en le rendant exécutable avec chmod +x zip_script.sh, puis en exécutant ./zip_script.sh.

  2. 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 $DIRECTORY
                

    Exécutez ce script en passant le chemin d’accès au répertoire en argument, par exemple ./zip_script.sh /chemin/vers/répertoire.

  3. 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 .txt dans 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.

Articles connexes: