Ich habe diesen Link gefunden, wie man tgz in einem Schritt öffnet .
gzip -dc target.tar.gz | tar xf -
Was bedeutet das?
Ich habe diesen Link gefunden, wie man tgz in einem Schritt öffnet .
gzip -dc target.tar.gz | tar xf -
Was bedeutet das?
Antworten:
Es ist eine übliche Konvention, -
in einem Dateinamenargument zu bedeuten, stdin
oder stdout
; tar
folgt der gleichen Konvention. Von der Manpage:
-f, --file [HOSTNAME:]F
use archive file or device F (default "-", meaning stdin/stdout)
-
bedeutet. Stdin / stdout ist bei weitem die häufigste Bedeutung, aber es gibt andere. Für einige Versionen env
bedeutet dies beispielsweise "mit einer leeren Umgebung beginnen".
Eine andere Konvention besteht darin, '-' zu verwenden, um das Ende von Flags und den Anfang von Dateinamen anzugeben. Dieses Verhalten ist zumindest in getopt (3) in RedHat 4 integriert. Ich kann keine Red Hat-Manpage finden, die '-' verwendet, um das Ende der Argumente anzugeben. Alle scheinen '-' zu verwenden, um dies zu tun. Die awk-Manpage hat in diesem Zusammenhang '-', daher verwenden möglicherweise nur alte "Erbstück" -Unix- oder Solaris-Befehle '-' als Argument - Dateinamen-Trennzeichen.
--
signalisiert das Ende von Optionen, also ist alles, was danach kommt, ein Operand. -
ist keine Option, also ist es und alles, was danach kommt, ein Operand. Dies ist Standardverhalten . Für viele Befehle, wie beispielsweise tar
, der Operand -
bedeutet Standard Eingang oder Ausgang . Auf vielen Muscheln set - -a
ist gleichbedeutend mit set -- -a
und auf einigen alten Bourne-Muscheln set - -a
war die einzig akzeptierte Form, aber dies ist eine Ausnahme mit der set
eingebauten.
--
, Optionen von Argumenten zu trennen.
tar xfz target.tar.gz
und für bziptar xfj target.tar.bz2