Ho trovato questo link su come aprire tgz in un solo passaggio .
gzip -dc target.tar.gz | tar xf -
Cosa significa "-"?
Ho trovato questo link su come aprire tgz in un solo passaggio .
gzip -dc target.tar.gz | tar xf -
Cosa significa "-"?
Risposte:
È una convenzione comune da usare -
in un argomento nomefile per significare stdin
o stdout
; tar
segue la stessa convenzione. Dalla pagina man:
-f, --file [HOSTNAME:]F
use archive file or device F (default "-", meaning stdin/stdout)
-
significa per esso. Stdin / stdout è di gran lunga il significato più comune, ma ce ne sono altri. Ad esempio, per alcune versioni env
significa "iniziare con un ambiente vuoto".
Un'altra convenzione è usare '-' per indicare la fine dei flag e l'inizio dei nomi dei file. Tale comportamento è incorporato almeno in getopt (3) su RedHat 4. Non riesco a trovare una pagina man di Red Hat che usi '-' per indicare la fine degli argomenti, tutti sembrano usare '-' per farlo. La pagina man di awk ha '-' in quel contesto, quindi forse solo i vecchi comandi "cimelio" Unix o Solaris usano '-' come argomento - separatore di nomi di file.
--
segnala la fine delle opzioni, quindi tutto ciò che viene dopo è un operando. -
non è un'opzione, quindi e tutto ciò che viene dopo è un operando. Questo è un comportamento standard . Per molti comandi, come ad esempio tar
, l'operando -
significa input o output standard . Su molte shell, set - -a
è equivalente a set -- -a
, e su alcune vecchie shell Bourne set - -a
era l'unica forma accettata, ma questa è un'eccezione con il set
built-in.
--
per separare le opzioni dagli argomenti.
tar xfz target.tar.gz
e per bziptar xfj target.tar.bz2