Comment extraire rapidement toutes sortes de fichiers archivés à partir de la ligne de commande?


11

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


1
Voir aussi atool, avec lequel vous pouvez extraire / emballer plusieurs formats: voir la réponse que j'ai donnée à cette question: ligne de commande-archive-manager-extracter . Cette question est également une copie de celle-ci, donc elles devraient probablement être fusionnées.

Réponses:


15

Le dtrxcommandement est votre ami à ce sujet.

Il décompresse tout fichier d'archive en devinant son type. Il s'assurera également que les fichiers que vous décompressez 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

Vous pouvez utiliser le script shell suivant (je l'ai nommé extractet je l'ai mis ~/bin):

#! / bin / bash

si [$ # -lt 1]; alors
  echo "Usage:` basename $ 0` FILES "
  sortie 1
Fi

# J'ai trouvé la fonction suivante sur https://unix.stackexchange.com/a/168/37944 
# que j'ai améliorée un peu. Un grand merci à sydo pour cette idée.
extrait () {
    pour arg dans $ @; faire
        if [-f $ arg]; puis
            cas $ arg dans
                * .tar.bz2) tar xjf $ arg ;;
                * .tar.gz) tar xzf $ arg ;;
                * .bz2) bunzip2 $ arg ;;
                * .gz) gunzip $ arg ;;
                * .tar) tar xf $ arg ;;
                * .tbz2) tar xjf $ arg ;;
                * .tgz) tar xzf $ arg ;;
                * .zip) décompressez $ arg ;;
                * .Z) décompresse $ 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
        autre
            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:

extraire fichier_1 fichier_2 ... fichier_n 

Joli. Je trouve que zip extrait parfois dans le répertoire courant, quand je le veux son propre sous-répertoire. L'utilisation de unzip -d basename $argpeut être utile.
crafter
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.