GNU/Linux >> Tutoriels Linux >  >> Linux

Une fonction bash pour extraire des archives de fichiers de différents types

Il existe de nombreuses applications disponibles pour extraire différents types de fichiers d'archive. Se souvenir de toutes les options et paramètres de chaque outil d'archivage serait difficile pour vous. Pas de soucis! Aujourd'hui, je suis tombé sur une simple fonction Bash pour extraire des archives de fichiers de différents types sous Linux.

Cette fonction Bash peut extraire les formats d'archive les plus couramment utilisés, tels que .tar.bz2 , .tar.bz , .bz2 , .rar , .zip , et .7z etc. Vous n'avez pas besoin d'utiliser l'application d'archivage proprement dite pour extraire un fichier d'archive ! Ajoutez simplement cette fonction à votre fichier ~/.bashrc et appelez-la pour extraire les fichiers d'archive. Il trouvera et utilisera automatiquement l'outil d'archivage approprié pour extraire les fichiers. Pas besoin de mémoriser les drapeaux et les options !

Une fonction Bash pour extraire les archives de fichiers

Ouvrez votre ~/.bashrc fichier dans un éditeur de texte de votre choix :

$ nano ~/.bashrc

Ajoutez l'extrait suivant à la fin :

# Bash Function To Extract File Archives Of Various Types
extract () {
     if [ -f $1 ] ; then
         case $1 in
             *.tar.bz2)   tar xjf $1     ;;
             *.tar.gz)    tar xzf $1     ;;
             *.bz2)       bunzip2 $1     ;;
             *.rar)       rar x $1       ;;
             *.gz)        gunzip $1      ;;
             *.tar)       tar xf $1      ;;
             *.tbz2)      tar xjf $1     ;;
             *.tgz)       tar xzf $1     ;;
             *.zip)       unzip $1       ;;
             *.Z)         uncompress $1  ;;
             *.7z)        7z x $1    ;;
             *)           echo "'$1' cannot be extracted via extract()" ;;
         esac
     else
         echo "'$1' is not a valid file"
     fi
}

Appuyez sur Ctrl+o et appuyez sur ENTER pour enregistrer le fichier puis appuyez sur Ctrl+ x pour quitter le fichier. Exécutez la commande suivante pour appliquer les modifications :

$ source ~/.bashrc

Désormais, vous pouvez simplement appeler cette fonction pour extraire différents types de fichiers d'archive.

Par exemple, je vais extraire un .7z type de fichier d'archive à l'aide de la commande :

$ extract archive.7z 

Exemple de résultat :

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_IN,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz (206A7),ASM)

Scanning the drive for archives:
1 file, 16013693 bytes (16 MiB)

Extracting archive: archive.7z
--
Path = archive.7z
Type = 7z
Physical Size = 16013693
Headers Size = 1204
Method = LZMA:23
Solid = +
Blocks = 1

Everything is Ok                                                               

Folders: 21
Files: 37
Size:       16625007
Compressed: 16013693

De même, pour extraire .zip tapez les fichiers, la commande serait :

$ extract archive.zip 

Veuillez noter que vous devez avoir installé le gestionnaire d'archives approprié avant d'utiliser cette fonction. Si aucun outil d'archivage pris en charge n'est installé sur votre système, vous recevrez un message d'erreur comme ci-dessous :

$ extract archive.zip 
bash: /usr/bin/unzip: No such file or directory

L'auteur original de ce script est inconnu. Ce script est mentionné à plusieurs endroits sur Internet. Si quelqu'un sait qui a écrit ceci, veuillez me le faire savoir dans la section des commentaires ci-dessous. J'ajouterai les coordonnées de l'auteur.

Utilisez-vous d'autres fonctions sympas de Bash ? Veuillez les partager via la section des commentaires. Cela pourrait m'être utile ainsi qu'à tous les lecteurs.

Lire connexe :

  • Renommer les fichiers sans saisir deux fois le nom complet sous Linux
  • Conseils Bash - Comment cp ou mv et cd en une seule commande
  • [Bash Tips] Comment cd et ls en une seule commande
  • Comment archiver des fichiers et des répertoires sous Linux [Partie 1]

Linux
  1. Comment créer, extraire ou ouvrir un fichier RAR sous Linux ?

  2. La fête ?

  3. 10 exemples de commandes Tar sous Linux pour créer et extraire des archives

  4. Extraire le nom de base du fichier sans chemin ni extension dans bash

  5. Fonction bash pour trouver le plus récent modèle de correspondance de fichier

Commande de source bash

Bash :ajouter au fichier

Comment extraire (décompresser) le fichier tar.xz

Remplacement de chaîne dans Bash

35 exemples de scripts bash

Extraire le fichier tar.gz sous Linux