web-dev-qa-db-fra.com

Comment extraire rapidement toutes sortes de fichiers archivés en ligne de commande?

Souvent, j'ai besoin d'extraire différents types de fichiers archivés en utilisant commad-line. Mais pas tout le temps je me souviens de la commande exacte pour tout type d'archive de fichier. Donc, je dois perdre du temps et chercher à nouveau. Comment puis-je éviter ça?

9
Radu Rădeanu

Vous pouvez utiliser le script Shell suivant (je l'ai nommé extract et je l'ai mis dans ~/bin):

#!/bin/bash
 
 if [$ # -lt 1]; alors 
 echo "Usage:` basename $ 0` FILES "
 exit 1 
 fi 
 
 # J'ai trouvé la fonction suivante à l'adresse  https://unix.stackexchange.com/a/168/37944ce que j'ai amélioré un peu. Merci beaucoup à  sydo  pour cette idée.
 extract () {
 pour arg dans $ @; faire 
 si [-f $ arg]; puis 
 cas $ arg dans 
 * .tar.bz2) tar xjf $ arg ;; 
 * .tar.gz) tar xzf $ arg ;; 
 * .bz2) bunzip2 $ arg ;; 
 * .gz) gunzip $ arg ;; 
 * .tar) tarxf $ arg ;; 
 * .tbz2) tar xjf $ arg ;; 
 * .tgz) tar xzf $ arg ;; 
 * .Zip) unzip $ arg ;; 
 * .Z) décompresser $ arg ;; 
 * .rar) rar x $ arg ;; # 'rar' doit être installé 
 * .jar) jar -xvf $ arg ;; # 'jdk' doit être installé 
 *) echo "'$ arg' ne peut pas être extrait via extract ()" ;; 
 esac 
 sinon 
 echo " '$ arg' n'est pas un fichier valide "
 fi 
 terminé 
} 
 
 extraire $ @ 

N'oubliez pas de rendre le script exécutable:

chmod +x ~/bin/extract

Usage:

extrait fichier_1 fichier_2 ... fichier_n
9
Radu Rădeanu

La commande dtrx est votre ami à ce sujet.

Il décompresse n'importe quel fichier d'archive en devinant son type. Il s'assurera également que les fichiers décompressés seront placés dans un nouveau répertoire. éviter de gâcher le répertoire de travail actuel avec des tonnes de fichiers.

Installer

Sudo aptitude install dtrx

Usage

dtrx stuff.Zip
11
Thomasleveil