tar -xvfz foo.tar.gz
renvoie une erreur tar: z: Cannot open: No such file or directory
Cela est parfaitement compréhensible - le f
commutateur attend un nom de fichier et doit donc être le dernier.
Cependant, omettre le trait d'union tar xvfz foot.tar.gz
fonctionne et décompresse et décompresse le fichier.
J'ai testé cela sur OS X 10.8 et Ubuntu 12.04.
Des idées pourquoi?
[édité pour ajouter]
Je l'utilise toujours tar -zxvf foo.tar.gz
. Cependant, cette question a surgi à cause de ce xkcd , et ma surprise quand quelqu'un a insisté pour que tar xvfz
cela fonctionne.
Réponses:
tar a 3 types de syntaxe (selon cela ):
Pour l'ancienne syntaxe d'option, toutes les lettres doivent suivre "tar" et doivent toutes tomber dans un seul bloc sans espaces. L'ordre des lettres importe peu, tant que les arguments de ces lettres suivent le même ordre après le groupe d'options.
Cette ancienne manière d’écrire les options tar peut surprendre même les utilisateurs expérimentés. Par exemple, les deux commandes:
sont assez différents. Le premier exemple utilise "archive.tar.gz" comme valeur pour l'option "f" et reconnaît l'option "z". Le deuxième exemple, cependant, utilise "z" comme valeur pour l'option "f" - probablement pas ce qui était prévu.
Les anciennes options sont conservées pour la compatibilité avec les anciennes versions de tar.
La commande avec un '-' équivaut à
C'est la raison pour laquelle votre exemple fonctionne sans "-" et non avec "-"
la source