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).