web-dev-qa-db-fra.com

Gestionnaire d'archives en ligne de commande / extracteur

Je continue à oublier toutes les commandes d'extraction correspondantes pour chaque format de compression.

Je pensais donc à écrire un script qui mapperait simplement les extensions de fichier à la commande d’extrait appropriée. Mais je suppose que quelque chose comme ça existe déjà, je ne peux tout simplement pas le trouver.

Je serais heureux avec quelque chose comme file-roller, mais file-roller est un outil graphique.

15
brillout

Quelques suggestions:

unp

unp (disponible à partir du centre de logiciel) est un petit module Perl qui décompresse une grande variété d’archives dans le dossier en cours. Utilisez unp -s pour les formats d'archive qu'il prend en charge

Par défaut, il décompresse les archives dans le dossier en cours.

rouleau de fichier

fichier-rouleau lui-même peut être exécuté à partir de la ligne de commande. Utilisez file-roller -h <archive name> pour décompresser l'archive.

11
fossfreedom

De ici , à mettre dans votre .bashrc:

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   ;;
         *)         echo "'$1' cannot be extracted via extract()" ;;
      esac
   else
      echo "'$1' is not a valid file"
   fi
} 
11
frabjous

Ce qui n’a pas encore été mentionné est le couteau suisse des utilitaires de ligne de commande: atool; il est disponible dans les dépôts: cliquez atoolInstall atool ou exécutez Sudo apt-get install atool.

atool est en réalité un script comprenant diverses fonctions telles que aunpack, apack, als, acat, adiff et arepack. L'utilisation la plus courante du programme consiste probablement à extraire des archives à l'aide de la commande aunpack. Il existe plusieurs options intéressantes et utiles, mais la méthode de base pour extraire la plupart des archives consiste simplement à exécuter, par exemple,

aunpack myarchive.tar

La prise en charge de tar, 7z, Zip, jar, rar, ar, lha et de nombreux autres formats d'archive et de leurs variantes est documentée en saisissant man atool dans le terminal ou en consultant la page de manuel Ubuntu en ligne .

Donc, ce qui est utile, c'est que si vous avez une archive tar, Zip et gz dans le même dossier, tout ce que vous avez à faire pour les extraire toutes est de les exécuter.

aunpack -e *

et toutes les archives prises en charge seront décompactées avec leur structure de dossiers conservée. Si le nom du dossier résultant existe déjà, il ne sera pas écrasé, mais un nom unique, comme unpack-5645, lui sera attribué.

Ou si vous voulez choisir un seul type d'archive et les décompresser, utilisez plutôt

aunpack -e *.Zip

Si vous avez besoin de fichiers décompressés directement dans un répertoire particulier, avec uniquement la structure de répertoires de sous-dossiers conservée (le cas échéant), entrez, par exemple,

aunpack -e Scripts11.Zip -X /home/mike/Videos

Si un fichier portant le même nom existe déjà, une action vous demandant de renommer ou d'écraser vous sera demandée, à moins que vous n'ayez spécifié l'option force (-f) dans la commande.

Comme le note la page de manuel, les premiers extraits de aunpack

fichiers dans un répertoire (temporaire) unique, puis déplace son contenu si possible. Cela évite également que les fichiers locaux ne soient écrasés par erreur.


Avec les autres outils, d’autres actions sont possibles, comme indiqué par le page de manuel :

  • apack crée des archives à partir des fichiers ou du dossier spécifié ou stdin
  • als répertorie les fichiers de l'archive spécifiée.
  • acat permet d'extraire des fichiers d'archive sur la sortie standard.
  • adiff vous permet de comparer les deux archives spécifiées
  • arepack permet de convertir un format d'archive en un autre en plaçant le contenu de l'archive d'origine dans un dossier temporaire, puis en remballant le nouveau.

Il existe de nombreuses autres options utiles pour tous les utilitaires, mais celle qui sera le plus souvent utilisée sera probablement ununpack, car cela facilite l'extraction de multiples archives différentes. Il est bon de pouvoir n’exécuter qu’une seule commande et d’extraire plusieurs formats d’archives différents sans avoir à utiliser les différentes commandes pour tar, Zip, etc.

Pour un article très récent décrivant comment intégrer les fonctions atool aux actions personnalisées de votre gestionnaire de fichiers, tel que Thunar, voir ce magazine en ligne .

4
user76204

Il existe un outil appelé dtrx - effectuez l'extraction appropriée.

Installez-le à partir des référentiels Ubuntu et exécutez dtrx somefile.someext. L'outil interrogera de manière interactive l'utilisateur sur les archives imbriquées (fichiers Zip ou Zip).

dtrx est une version sophistiquée de extrait de frabjous .

3
Jan

Quels types de formats devez-vous gérer? Une solution consiste à écrire un script Shell, qui vérifie les extensions de son argument. Ou bien, si vous ne traitez que des variantes de .tar. *, Il suffit de faire tar -xf pour traiter la plupart de ces tâches automatiquement. (Je ne me souviens donc que de cela et de unzip, ce qui suffit pour tout ce que je rencontre habituellement.)

0
Ben Kraft