Ich habe eine riesige .tar.gz-Datei von einem Client erhalten, der ungefähr 800 MB an Bilddateien enthält (wenn nicht komprimiert). Das FTP unseres Hosting-Unternehmens ist sehr langsam, daher ist es nicht praktisch, alle Dateien lokal zu extrahieren und über FTP zu versenden. Ich konnte die .tar.gz-Datei auf unsere Hosting-Site übertragen, aber wenn ich in mein Verzeichnis ssh und versuche, sie zu entpacken, erhalte ich folgenden Fehler:
[esthers@clients locations]$ unzip community_images.tar.gz
Archive: community_images.tar.gz
End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
note: community_images.tar.gz may be a plain executable, not an archive
unzip: cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.
Welchen Befehl muss ich verwenden, um alle Dateien in einer .tar.gz-Datei zu extrahieren?
tar -xf
Vorschlag , eine große zusätzliche Antwort machen würde.man tar
; suche nach der-C
Option. Oder sehen Sie sich die andere Antwort an 😉Wenn Sie möchten, dass die Dateien an ein bestimmtes Ziel extrahiert werden, können Sie Folgendes hinzufügen: Stellen Sie sicher, dass Sie zuerst das Verzeichnis erstellen , in diesem Fall: ~ / Pictures / Community
-C /destination/path/
Beispiel:
Sie können es leicht merken , wenn man bedenkt , sagen tar e X - Darm - Trakt ein F ile
Hinweis: Denken Sie daran , Sie in Manpages mit suchen
?
+ Begriff zu suchen, und dannn
undN
zur nächsten oder vorherige Instanz des Begriffs , den Sie suchen zu gehen.quelle
ps
).--directory="/home/emmys/Pictures/Community/"
(was meiner Meinung nach leichter zu merken ist als-C
).Irgendwann
tar
wurde ein Upgrade auf automatische Dekomprimierung durchgeführt. Alles was Sie jetzt brauchen ist:Die gleiche Erklärung gilt:
f
: Dies ist die letzte Flagge des Befehls sein muss, und der Teer f ile muss unmittelbar nach sein. Es teilt tar den Namen und den Pfad der komprimierten Datei mit.x
: e x Traktiere die Dateien.Beachten Sie den fehlenden Bindestrich für die Befehlsflags. Dies liegt daran, dass die meisten Versionen von tar sowohl die Optionen gnu als auch bsd zulassen (vereinfacht gesagt, benötigt gnu einen Bindestrich, bsd nicht).
quelle
Sich an alle Flags für
tar
zu erinnern, kann mühsam sein. Obligatorische XKCD:Deshalb habe ich mein eigenes kleines Skript in Python erstellt, um das zu tun. Schnell, dreckig,
cp
wie im Gebrauch:Verwenden Sie es wie folgt:
Siehe auch ähnliches Skript zum Entpacken von Zip-Archiven .
quelle
-caf
um sie anhand des Dateinamens zu erstellen und-xf
zu extrahieren (AFAIK funktioniert bei jedem Teertyp).tar xf <file>
?Schnelle Antwort:
[ HINWEIS ]:
-v
Ausführliche Liste der verarbeiteten Dateien.-z
Filtern Sie das Archiv durch gzip.-f
Verwenden Sie die Archivdatei oder das Gerät ARCHIVE.-x
Dateien aus einem Archiv extrahieren.-j
bzip2.-xf
archive.tar # Extrahiert alle Dateien vonarchive.tar
.quelle
Falls Sie die
.tar.gz
Datei nicht mit extrahieren könnenVersuchen Sie es mit
quelle
Sie können dies auch im ersten Schritt tun:
Dann haben Sie die Datei: community_images.tar
Der zweite Schritt wäre:
Und die * .tar-Datei würde extrahiert.
quelle
tar xvf file.tar.gz
Jede remote moderne Version von tar sollte automatisch erkennen, dass das Archiv gzippt ist, und "z" für Sie hinzufügen.
quelle