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 stdino stdout; tarsegue 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 envsignifica "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 - -aera l'unica forma accettata, ma questa è un'eccezione con il setbuilt-in.
--per separare le opzioni dagli argomenti.
tar xfz target.tar.gze per bziptar xfj target.tar.bz2