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]