Gestionnaire / extracteur d'archives en ligne de commande


15

J'oublie toujours toutes les commandes d'extraction correspondantes pour chaque format de compression.

Je pensais donc à écrire un script qui mappe simplement les extensions de fichier à la commande d'extraction appropriée. Mais je suppose que quelque chose comme ça existe déjà, je ne le trouve pas.

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

Réponses:


11

Quelques suggestions:

unp

unp (disponible à partir du centre logiciel) est un petit module perl qui décompressera une grande variété d'archives dans le dossier actuel. Utiliser unp -spour les formats d'archives pris en charge

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

file-roller

file-roller 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

De , pour mettre 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
} 

Ajoutez un exemple de la façon de l'utiliser?
MiniGod

4
extract file.zip
frabjous

4

Ce qui n'a pas encore été mentionné est le -couteau de l' armée suisse des services de ligne de commande: atool; il est disponible dans les référentiels: cliquez sur atool Installer atool ou exécutez sudo apt-get install atool.

atoolest en fait un script comprenant diverses fonctions telles que aunpack, apack, als, acat, adiff et arepack. L'utilisation la plus courante du programme est probablement l'extraction d'archives à l'aide de la commande aunpack. Il existe de nombreuses 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'archives et leurs variantes sont documentées en entrant man atooldans le terminal ou en consultant la page de manuel Ubuntu en ligne .

Donc, la chose utile 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 est d'exécuter

aunpack -e *

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

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

aunpack -e *.zip

Si vous avez besoin de fichiers décompressés directement dans un répertoire particulier, seule la structure de répertoires des sous-dossiers étant conservée (si elle se ferme), entrez, par exemple,

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

Si un fichier portant le même nom existe déjà, vous serez invité à effectuer une action à renommer ou à remplacer, sauf si vous avez spécifié l'option force ( -f) dans la commande.

Comme le note la page de manuel, aunpack commence par extraire

fichiers dans un répertoire unique (temporaire), puis déplacez son contenu si possible. Cela empêche également les fichiers locaux d'être remplacés par erreur.


Avec les autres outils, d'autres actions sont possibles, comme le mentionne la page de manuel :

  • apack crée des archives à partir des fichiers ou du dossier spécifie ou stdin
  • als répertorie les fichiers dans l'archive spécifiée
  • acat permet d'extraire des fichiers d'archive vers stdout
  • 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 reconditionnant le nouveau.

Il existe de nombreuses autres options utiles pour tous les utilitaires, mais probablement celui qui sera le plus utilisé sera aunpack, car cela facilite l'extraction de plusieurs archives différentes. C'est génial de pouvoir émettre une seule commande et d'extraire plusieurs formats d'archive 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 dans les actions personnalisées de votre gestionnaire de fichiers, comme Thunar, consultez ce magazine en ligne .


3

Il existe un outil appelé dtrx- faire la bonne extraction.

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 (zip de fichiers zip).

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


0

De quels types de formats avez-vous besoin? Une façon consiste à écrire un script shell, qui vérifie les extensions de son argument. Ou, si vous ne vous occupez que des variations de .tar. *, Le simple fait de tar -xftraiter la plupart d'entre elles automatiquement. (Je ne me souviens donc que de cela et unzipqui suffit pour tout ce que je rencontre habituellement.)

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.