Question Untar, ungz, gz, tar - comment vous souvenez-vous de toutes les options utiles?


Je suis à peu près certain que je ne suis pas le seul à avoir le problème suivant: chaque fois que je dois décompresser un fichier dans * nix, je ne me souviens pas de tous les commutateurs, et finis par le googler. Faites ceci

Avez-vous une bonne feuille de compression? Ou pourquoi pas un mnémonique pour tous ces méchants commutateurs dans le tar?

Je fais de cet article un wiki pour que nous puissions créer un bon aide-mémoire ici.

Oh, et à propos des pages de manuel: y a-t-il une chose pour laquelle elles ne sont pas utiles, c'est pour comprendre comment décompresser un fichier.


70
2017-10-21 21:56


origine


utilisez les pages de manuel, vous n'avez pas besoin de créer un wiki, et vous devez seulement vous souvenir de la commande man :-) man (1) - Florenz Kley
eXtract Zee File est ce dont je me souviens - Canadian Luke
Créer un fichier Zee Vocking peut être approprié pour créer un fichier .tar.gz - CousinCocaine


Réponses:


Ou comment utiliser le shell avec des fonctionnalités de complétion avancées (telles que zsh ou des versions récentes de bash) qui complèteront les options pour vous, avec une aide complète? :))

Concernant tar: regardez simplement le clavier "qwerty". Il y a des lettres "zxcvf" côte à côte. Vous devez soit "tar czvf file.tar.gz files" ou "tar xzvf file.tar.gz".


62



Les accessoires pour répondre à la question :)
Maintenant, c'est un conseil COOL "qwerty"! :)
frotter génial! - deadprogrammer
Un autre conseil est que le z option (ou la j option pour .bz2 fichiers) n'est pas nécessaire lors de l'extraction avec des versions modernes de tar. Il décompresse automatiquement le fichier. - Nate
J'ai utilisé le goudron environ dix milliards de fois et je n'ai jamais remarqué que toutes les options les plus couramment utilisées étaient côte à côte sur le clavier. headmack - Tyler McHenry


Résumé de l'option Tar

Vous êtes tous invités à modifier ceci pour ajouter plus de commutateurs ésotériques mais voici les bases:

  • X - extraire des fichiers
  • c - créer des archives
  • t - les fichiers de liste
  • v - verbose (liste les fichiers au fur et à mesure de leur traitement)
  • j - utiliser la compression bz2
  • z - utiliser la compression gz
  • F - lire ou écrire des fichiers sur disque

Exemples

Décompressez un fichier tar.gz: tar zxf tarball.tar.gz

Décompressez un fichier tar.bz2: tar jxf tarball.tar.bz2

Créez un fichier tar.gz: tar zcvf tarvall.tar.gz mydir / *


38





Il y a un petit script Perl appelé "unp".

unp filename.tar.gz

... et ça extrait tout. Marche avec tout fichier compressé tant que vous avez les bons binaires. Et vous oubliez simplement la syntaxe ou n'importe laquelle de ces conneries. Vérifiez les référentiels de votre distribution Linux. Il devrait être là (au moins sur Arch, Debian et Ubuntu).


22



Cool, c'est nouveau pour moi. Merci pour le conseil!
Même après avoir utilisé le goudron pendant assez longtemps, je dois encore chercher Google pour les drapeaux stupides. Unp est la voie à suivre. - Yada


Il suffit de taper tar --help et il y a votre cheatsheet.


6



Sérieusement, avez-vous déjà essayé de lire cette page de manuel? - deadprogrammer
C'est peut-être un peu illisible et long mais je pense que cela fonctionne bien pour simplement rechercher le nom d'une option. Vous pouvez également rechercher l'option que vous recherchez, c'est-à-dire 'tar --help | extrait de grep '. - Jeremy Ruten
Génial. Et puis vous devez parcourir une page de manuel qui (parmi les éléments que vous recherchez) vous indique des tonnes de commandes et d'options de diffusion archaïques, à l'exception des besoins des développeurs.
Je ne vois vraiment pas ce qui est si difficile à ce sujet. Pour extraire une archive, il suffit de trouver l'option extract et d'ajouter -x à votre commande. Si vous le souhaitez, recherchez cette option et ajoutez un v pour obtenir -xv. Continuez jusqu'à ce que vous obteniez la commande exacte souhaitée. Il a même des exemples de commandes pour les opérations courantes. - Jeremy Ruten
Jeremy, le vrai problème est que vous ne connaissez pas toujours le vocabulaire approprié. En tant que tel, il est facile de se confondre et de trouver des options similaires et de ne pas les faire fonctionner. Ensuite, vous devez en placer (certains) dans le bon ordre. Ceci n'est pas trivial pour quelqu'un qui quitte Windows. Encore plus, s'ils ne connaissaient pas les scripts sous Windows. - Nazadus


Avec une utilisation fréquente, je fais la différence entre l'extraction (x) des données et la compression (c) des données:

Extraire:

tar xzf data.tgz

Pour compresser:

tar czf data.tgz

De plus, vous pouvez également ajouter deux fonctions à votre .bashrc:

function extract () {     
        if ($# -ne 1); then
                echo "Usage: $0  `<compressed archive>"`
                exit 1
        fi
        tar xzf $1
}

function compress () {
        if ($# -ne 2); then
                echo "Usage: $0 `<compressed archive> <files|directories>"`
                exit 1
        fi
        tar czf $1 $2
}

Il y a une autre belle fonction d'extraction, elle détecte l'extension de votre fichier compressé et fait le travail pour vous:

extract () {
   if [ -f $1 ] ; then
       case $1 in
           *.tar.bz2)   tar xvjf $1    ;;
           *.tar.gz)    tar xvzf $1    ;;
           *.bz2)       bunzip2 $1     ;;
           *.rar)       unrar x $1       ;;
           *.gz)        gunzip $1      ;;
           *.tar)       tar xvf $1     ;;
           *.tbz2)      tar xvjf $1    ;;
           *.tgz)       tar xvzf $1    ;;
           *.zip)       unzip $1       ;;
           *.Z)         uncompress $1  ;;
           *.7z)        7z x $1        ;;
           *)           echo "don't know how to extract '$1'..." ;;
       esac
   else
       echo "'$1' is not a valid file!"
   fi
 }

6





Si vous avez des problèmes pour vous souvenir des options tar, essayez d'utiliser des tuyaux:

  • zcat file.tar.gz | tar xvf -
  • bzcat file.tar.bz2 | tar xvf -

Remplacer tar xv avec tar tv pour voir le contenu de l'archive.

Personnellement, j'utilise les mnémoniques suivants:

  • t, x ou c pour "tabulation", "xtracting" ou "creation", respectivement.
  • v pour lister tous les fichiers.
  • z, j ou rien pour tar.gz, tar.bz2 ou plain .tar, respectivement.
  • f pour donner un nom de fichier, par défaut pour utiliser stdin / stdout ou un périphérique de bande.

Bien que "j" et "bzip2" semblent n'avoir rien à voir les uns avec les autres, je trouve facile de retenir cette exception.

De plus, je trouve ça amusant que Googling ait remplacé "man tar".


3



Vous devriez prendre l'habitude de toujours fournir le f option: ce n'est que récemment que les distributions de tar par défaut à f -, le défaut historique est f /dev/rmt0 ou similaire. Après tout, tar est le Tape ARchiver. - ephemient
Qu'est ce que la tabulation? - Claudiu


L'homme est ton ami.

man tar


3





Je fais ce qui suit

Pour créer un tar: tar czvf foo.tar.gz

Pour déchaîner tar zxvf foo.tar.gz

Ce sont les principaux commutateurs dont vous devez vous préoccuper.

c - créer z - compresser / décompresser x - extraire v - verbeux f - fichier

Vous pouvez faire des trucs plus sophistiqués comme le goudron et décompresser en ligne tout en essayant de déplacer des fichiers sur des répertoires comme celui-ci

tar cf - | (cd; tar xvf -)

HTH


2





Je lis toujours les commandes dans mon esprit, tout en tapant

compresser le fichier zip verbeux

tar cvzf FILE

extraire le fichier zip prolixe FILE

tar xvzf FILE

2