Ich versuche, eine tar.gz-Datei mit dem folgenden Befehl zu erstellen:
sudo tar -vcfz dvr_rdk_v1.tar.gz dvr_rdk/
Es werden dann Dateien erstellt (viele Dateien im Ordner), aber dann wird die folgende Fehlermeldung angezeigt:
tar: dvr_rdk_v1.tar.gz: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Ich sehe keine Beschreibung dieses Fehlers. Was bedeutet das?
-
einen Unterschied, da GNU-Teer etwas eigenartig ist. Optionsargumente können nicht im ersten Argument gebündelt werden, wenn es nicht mit a beginnt.-
Daherf
ist das Argument an das nächste Argument antar
undtar vcfz dvr_rdk_v1.tar.gz
entspricht somittar -v -c -f dvr_rdk_v1.tar.gz -z
.z
oderj
das Archiv auch mit Erfolg-
beteiligt ist. Wenn ich den Bindestrich hinzufüge, wird das letzte Zeichen in der Option als "Datei" behandelt. Als Ergebnis erhalte ichj
oderz
als archivierte Datei, wenn ich diese Option-cvfz
oder verwende-cvfj
.Die
-f
Option sollte direkt vor dem Dateinamen stehen. Verwenden Sie alsotar -vczf filename.tar.gz
anstelle von-vcfz
quelle
j
oderz
mit diesen Befehlen-cvfj
und-cvfz
jeweils.Der Befehl tar war in der Vergangenheit einer der wenigen Befehle, die nicht den Syntaxrichtlinien des Unix- Dienstprogramms entsprachen .
Die Standardseite für Teer sagt:
Während die Syntaxrichtlinien dies beinhalten:
Während der von Ihnen eingegebene Befehl
tar -vcfz dvr_rdk_v1.tar.gz dvr_rdk/
für ältere Versionen von tar in Ordnung ist, wird er von bestimmten Versionen von tar, die so geschrieben wurden, dass sie den Richtlinien für die Dienstprogrammsyntax genau entsprechen,z
als "Verwendung als Dateiargument für" analysiert-f
. Sie sollten also Folgendes verwenden, um portabel zu sein:quelle
So erstellen Sie das Archiv
Dies zeigt die Liste der Dateien und Ordner
Und wieder zu extrahieren
quelle
tar
.tar
falsch verwendet hat, obwohl es nett ist, zumindest zu erwähnen, was der Hauptunterschied ist (-f
bis zum Ende)z
alsf
am Ende zu setzen, daher mein Kommentar.