GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Der Befehl Tar -cvfz führt zu einer Fehlermeldung, es sei denn, ich lasse den Bindestrich vor „cvfz“ weg?

Für diese Frage gibt es hier bereits Antworten :Vor 9 Jahren geschlossen.

Mögliches Duplikat:
sudo tar cvpzf wird aufgrund eines vorherigen Fehlers mit einem Fehler beendet

Wenn ich den Befehl ausführe

tar -cvfz backup.tar.gz somedirectory

Ich bekomme folgendes sterr

tar: Exiting with failure status due to previous errors

Wenn ich jedoch den vorangehenden Bindestrich von -cvfz weglasse alles scheint gut zu funktionieren. Gibt es einen bekannten Grund dafür, warum der Bindestrich mich daran hindert, meine Dateien zu tarieren?

Akzeptierte Antwort:

Ich bin mir nicht sicher, warum tar cvfz funktioniert nach einem schnellen Scan des man Seite und meiner Erfahrung nach ist ein Bindestrich gängige Praxis. Vielleicht ist es eine BSD-Kompatibilitätssache (wie ps ).

Deine Syntax ist jedenfalls falsch. -f nimmt das nächste Argument als den Dateinamen, in den komprimiert werden soll. In diesem Fall lautet dieser Dateiname z , was Sie nicht erwartet haben. Hier ist ein Beispiel der Ausgabe, damit Sie sehen können, was ich meine:

$ tar -cvfz test.tar.gz scott
tar: test.tar.gz: Cannot stat: No such file or directory
scott/
scott/netx/
scott/netx/locks/
scott/netx/locks/netx_running
tar: Exiting with failure status due to previous errors

Ein ls zeigt eine Datei namens z . Die file Der Befehl zeigt, dass es sich um einen unkomprimierten tar handelt Archiv. Es ist unkomprimiert, weil das -z Argument wurde nicht bestanden. Und die Fehlermeldung kam vom Versuch, die nicht vorhandene Datei test.tar.gz hinzuzufügen zum Archiv.

Ordnen Sie einfach die Optionen neu und Sie werden in Ordnung sein:

tar -czvf test.tar.gz some/directory

Wenn Sie immer das -f machen Das letzte Argument, es wird dir gut gehen. Denken Sie übrigens daran, dass kurze Optionen (Ein-Buchstaben-Optionen), die Argumente annehmen, normalerweise kein Leerzeichen zwischen der Option und dem Argument benötigen.

BEARBEITEN: Übrigens, wenn das Formular ohne Bindestrich eine BSD-Kompatibilitätssache oder so etwas ist, dann ist es wahrscheinlich, dass tar in einer solchen Umgebung aufgerufen wird, ist anders und erfordert nicht den f -Flag, um die Eingabedatei anzugeben, funktioniert aber eher wie cp oder so. Aber das ist nur eine Spekulation basierend auf einem Vergleich mit ps (siehe auch).

Verwandt:Wie kann man Musik über das Netzwerk auf mehrere Computer in Ubuntu streamen?
Ubuntu
  1. So verwenden Sie den Tar-Befehl unter Linux

  2. So extrahieren Sie die tar.gz-Datei in Linux mithilfe der Befehlszeile

  3. Ich kann Tar.bz2-Datei nicht extrahieren:Fehlermeldung, .h-Datei:Zugriff verweigert?

  4. Was ist der Baumbefehl in Ubuntu?

  5. So kombinieren Sie den Befehl „tar“ mit „find“

So komprimieren und extrahieren Sie Dateien mit dem Befehl Tar, Zip unter Linux

Beheben Sie den Fehler, dass der Befehl hwmatch auf Grub nicht gefunden werden kann

Der Shutdown-Befehl?

Finden Sie die Befehlszeile?

Das Starten der Control Suite führt zu einem Anwendungsfehler beim Initialisieren

Das ultimative Tar Command Tutorial mit 10 praktischen Beispielen