J'ai trouvé ce lien sur la façon d' ouvrir tgz en une seule étape .
gzip -dc target.tar.gz | tar xf -
Que signifie le «-»?
command-line
tar
ripper234
la source
la source
tar xfz target.tar.gz
et pour bziptar xfj target.tar.bz2
Réponses:
C'est une convention courante à utiliser
-
dans un argument de nom de fichier pour signifierstdin
oustdout
;tar
suit la même convention. Depuis la page de manuel:la source
-
signifie. Stdin / stdout est de loin le sens le plus courant, mais il en existe d'autres. Par exemple, pour certaines versions,env
cela signifie "commencer avec un environnement vide".Une autre convention consiste à utiliser «-» pour indiquer la fin des drapeaux et le début des noms de fichiers. Ce comportement est intégré à getopt (3) sur RedHat 4, au moins. Je ne trouve pas de page de manuel Red Hat qui utilise «-» pour indiquer la fin des arguments, ils semblent tous utiliser «-» pour le faire. La page de manuel awk a '-' dans ce contexte, donc peut-être que seules les anciennes commandes "héritage" Unix ou Solaris utilisent '-' comme argument - séparateur de noms de fichiers.
la source
--
signale la fin des options, donc tout ce qui vient après est un opérande.-
n'est pas une option, donc elle et tout ce qui vient après est un opérande. Il s'agit d' un comportement standard . Pour beaucoup de commandes, telles quetar
, l'opérande des-
moyens d' entrée ou la sortie standard . Sur de nombreux obus,set - -a
est équivalent àset -- -a
, et sur certains anciens obus Bourneset - -a
était la seule forme acceptée, mais c'est une exception avec leset
intégré.--
séparer les options des arguments.