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 «-»?
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 «-»?
Réponses:
C'est une convention courante à utiliser -
dans un argument de nom de fichier pour signifier stdin
ou stdout
; tar
suit la même convention. Depuis la page de manuel:
-f, --file [HOSTNAME:]F
use archive file or device F (default "-", meaning stdin/stdout)
-
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.
--
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 que tar
, 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 Bourne set - -a
était la seule forme acceptée, mais c'est une exception avec le set
intégré.
--
séparer les options des arguments.
tar xfz target.tar.gz
et pour bziptar xfj target.tar.bz2