$ ls one.tar.gz
one.tar.gz
$ tar -xvfz one.tar.gz
tar: z: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
$ tar -xvzf one.tar.gz
one
$ tar -xzvf one.tar.gz
one
$ tar -zxvf one.tar.gz
one
$
quelle
$ ls one.tar.gz
one.tar.gz
$ tar -xvfz one.tar.gz
tar: z: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
$ tar -xvzf one.tar.gz
one
$ tar -xzvf one.tar.gz
one
$ tar -zxvf one.tar.gz
one
$
Der -f
Schalter akzeptiert ein Argument (den Dateinamen). Wenn z
nach dem angezeigt f
wird, wird dies als Dateiname angenommen.
tar -xvfz one.tar.gz
ist das gleiche wie
tar -xvf z one.tar.gz
Wenn Sie dies getan hätten:
tar -xvf -z one.tar.gz
dann -z
wäre als Dateiname genommen worden und Sie hätten einen ähnlichen Fehler bekommen.
Dies hätte jedoch funktioniert:
tar -xvz -f one.tar.gz
In der GNU- tar
Manpage heißt es:
Das erste Argument für tar muss eine der folgenden Optionen sein: Acdrtux, gefolgt von optionalen Funktionen. Die letzten Argumente für tar sind die Namen der Dateien oder Verzeichnisse, die archiviert werden sollen.
Beachten Sie, dass die -f filename
Option und das Argument angegeben werden müssen , es sei denn, die Eingabe erfolgt von stdin oder die Ausgabe erfolgt stdout (falls zutreffend) . Während die Manpage impliziert, dass die Reihenfolge festgelegt ist, können die Optionen in Wirklichkeit in beliebiger Reihenfolge sein. Sogar dieses seltsame funktioniert (aber es funktioniert möglicherweise nicht in allen Versionen von tar
):
tar -v files_to_archive* -f xyz.tar.gz -cz
Für die Portabilität ist es wahrscheinlich besser, sich an die idiomatische Argumentreihenfolge zu halten und sogar den Bindestrich wegzulassen:
tar czvf xyz.tar.gz files_to_archive*
tar
Fällen werden alle Schalter verkettet und nicht getrennt, wie in Ihrer Antwort angegeben. Es gibt keinen Grund, warum eine Person es nicht so machen könnte, wie Sie es zeigen, aber die Redewendung ist, es so zu machen, wie es in den ersten beiden erfolgreichen Beispielen in der Frage gezeigt wird :<operation> <option> <option> <file>
. Die Redewendung führt zur Folgerung.z kann zuletzt verwendet werden:
Aber wie von @Dennis angegeben, nimmt die f- Flagge ein Argument an.
quelle