Wie kann ich Zip-Archive über die Befehlszeile erstellen und extrahieren?
Wie kann ich Zip-Archive über die Befehlszeile erstellen und extrahieren?
Antworten:
In der Regel wird tar
ein nicht komprimiertes Archiv erstellt und entweder gzip
oder bzip2
komprimiert. Die entsprechenden Befehle gunzip
und bunzip2
können verwendet werden, um das Archiv zu dekomprimieren, oder Sie können nur Flags für den tar
Befehl verwenden, um die Dekomprimierung durchzuführen.
Wenn Sie sich speziell auf das Zip-Dateiformat beziehen , können Sie einfach die Befehle zip
und verwenden unzip
.
Komprimieren:
zip squash.zip file1 file2 file3
oder um ein Verzeichnis zu komprimieren
zip -r squash.zip dir1
So dekomprimieren Sie:
unzip squash.zip
Dadurch wird es in Ihr aktuelles Arbeitsverzeichnis entpackt.
zip -r9 archive.zip files...
Syntax (-r = rekursiv -9 = maximale Komprimierung).
zip
Kann viele verschiedene Arten von .ZIP-Archiven erstellen sowie viele verschiedene Kompressoren verwenden. Andererseits gibt es eine Reihe anderer Komprimierungswerkzeuge mit ähnlichen Namen: 7-Zip, gzip, bzip2, rzip usw., die nicht austauschbar sind.
cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zip
um in ein separates neues Verzeichnis ( myfolder
) zu extrahieren, anstatt alle Dateien direkt in das aktuelle Verzeichnis zu verschieben. Dies kann ärgerlich sein, wenn die ZIP-Datei in der obersten Ebene viele Dateien und Verzeichnisse enthält. Dies ahmt nach, wie die meisten Tools zum Entpacken der Benutzeroberfläche funktionieren.
Es gibt eine wirklich große Anzahl von verschiedenen Möglichkeiten , zu komprimieren und unter UNIX - Derivaten dekomprimieren so dass ich davon ausgehen , werde man im allgemeinen Sinne „zip“ zu verstehen und nicht als ein spezifischen Dateiformat.
Sie können Dateien im komprimierten Format mit dem GNU- tar
Programm komprimieren :
tar -zcvf myfile.tgz .
Welches wird das aktuelle Verzeichnis tun. Ersetzen Sie diese .
durch andere Dateinamen, wenn Sie etwas anderes möchten.
Verwenden Sie zum Entpacken dieser Datei Folgendes:
tar -zxvf myfile.tgz
Dies setzt natürlich voraus, dass Sie tar
in der Lage sind, sowohl die Komprimierung als auch das Zusammenführen von Dateien zu einer einzigen durchzuführen.
Wenn nicht, können Sie nur tar cvf
gefolgt von gzip
(falls verfügbar) für die Komprimierung und gunzip
anschließend verwenden tar xvf
.
Für spezielle Handhabung von ZIP - Format - Dateien, würde ich empfehlen , das Herunterladen 7zip
und die Verwendung dieser - es erkennt eine große Vielzahl von Dateiformaten, einschließlich der ZIP ein.
tar jcvf file.tar.bz2...
, um im bzip2-Format oder tar Jcvf file.tar.xz ...
für die xz-Komprimierung zu komprimieren.
Nun, wenn es darum geht, Dateien für eine Vielzahl von Betriebssystemen zu verteilen, würde ich 7-zip empfehlen .
Normalerweise erhalten Sie im Paket p7zip
den Befehl 7z
und 7za
, mit dem Sie Ihre eigenen 7z-Archive erstellen können.
7za
kann auch Standard- Zip-Archive ( pkzip ) dekomprimieren (und sie auch mit dem -tzip
Switch erstellen ).
Komprimieren:
7za a archive.7z file1 file2 directory/
Dekomprimieren:
7za x archive.7z
Es kann auch selbstextrahierende Archive mit dem -sfx
Schalter erstellen :
7za a -sfx archive.exe files1 file2 dir
Ich empfehle diese Methode, falls Windows-Benutzer 7z-Archive nicht öffnen können (falls Sie ein Tool dazu empfehlen möchten: PeaZip ).
Wenn Sie denselben Komprimierungsalgorithmus für Ihre Tarballs verwenden möchten, verwenden Sie den -J
Schalter mit tar
:
tar cJf archive.tar.xz file1 file2 dir
xz
ist ein UNIX - Tool, das LZMA2 für die Kompression, funktioniert aber die Art und Weise verwendet gz
, bz2
usw. funktioniert. Es funktioniert sogar als Filter.
7z schafft keine Archive mit voller Dateisystem Informationen über UNIX, so würden Sie verwenden müssen , tar
bevor Sie 7z (aber da 7z speichert andere Informationen über die tar
Datei, würde ich empfehlen , mit xz
, wie es für sie ausgelegt ist):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
atool
, es ist ein nettes kleines Tool, das die Verwendung vieler verschiedener Kompressoren komfortabler macht. Binden Sie das zu a
und Erstellen eines Archivs wird a arc.7z folder/
oder Extrahieren eines einfachena arc.7z
unzip <filename>
und
zip -r archive.zip <filename> [filename]
Sie müssen sicherstellen, dass diese Befehle über Ihren Paketmanager installiert werden. Es ist nicht schwerer als irgendetwas anderes in der Kommandozeile zu benutzen. Es ist sicherlich einfacher als Archive mit tar zu erstellen.
BSD Tar kann dies auch
bsdtar acf bravo.zip alfa.jpg
Oder:
bsdtar xf bravo.zip
tar
hat den Vorteil, dass es im Vergleich zu GNU tar
und anderen Formaten einige zusätzliche Komprimierungsformate unterstützt tar
. Der größte Vorteil ist vielleicht, dass dies unter Verwendung einer tar
ähnlichen Syntax geschieht . Sie können sicher verwenden 7z
, unrar
, unzip
usw. von der Kommandozeile, aber sie verwenden eine andere Syntax.
Die üblichste Antwort ist pax
, welche über cpio
und empfohlen wird tar
.
Im Gegensatz zu cpio
und POSIX tar
, aber wie GNU tar
, pax
ist es möglich, Dateien zu archivieren und das Archiv zu komprimieren. Dieses Verhalten unterscheidet sich von dem zip
, bei dem jede Datei komprimiert wird, bevor sie in das Archiv gestellt wird.
pax
Unterstützung von Zip - Archiven?
pax
Archive unterstützt !
Dies gilt nur für die Extraktion.
Dafür habe ich angefangen zu verwenden dtrx
.
Der springende Punkt dabei ist, die Komplexität zu beseitigen. Sie übergeben einfach ein beliebiges Archiv an das Archiv und es wird herausgefunden, was damit zu tun ist. Zip, tar, gz ... Verwendung ist immer gleich - dtrx archive.zip
. Es stellt ein paar Fragen und du bist fertig.
dtrx
ist in den meisten Repositorys verfügbar, sodass Sie apt
| yum
es installieren.
Ich versuche oft, die geänderten Dateien in meinem Arbeitsverzeichnis zu komprimieren - entweder um alle geänderten Dateien in ein anderes Sandbox-Arbeitsverzeichnis zu kopieren oder um sie für kurze Zeit zu behalten, weil ich einige der Änderungen rückgängig machen möchte.
In diesem Fall kopiere ich die Liste der geänderten Dateien in eine temporäre Datei und verwende sie zip
mit der Option -@
.
Nehmen wir an, ich habe die Dateien Foo.h, Bar.cc und TestBar.cc geändert.
Angenommen, ich erstelle eine Datei mit dem Namen modified-files.txt, deren Inhalt wie folgt lautet:
Foo.h
Bar.cc
TestBar.cc
Ich führe den folgenden Befehl aus, um diese Dateien zu komprimieren:
cat modified-files.txt | zip modified-files.zip -@