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 tarein nicht komprimiertes Archiv erstellt und entweder gzipoder bzip2komprimiert. Die entsprechenden Befehle gunzipund bunzip2können verwendet werden, um das Archiv zu dekomprimieren, oder Sie können nur Flags für den tarBefehl verwenden, um die Dekomprimierung durchzuführen.
Wenn Sie sich speziell auf das Zip-Dateiformat beziehen , können Sie einfach die Befehle zipund 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).
zipKann 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.zipum 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- tarProgramm 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 tarin 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 cvfgefolgt von gzip(falls verfügbar) für die Komprimierung und gunzipanschließend verwenden tar xvf.
Für spezielle Handhabung von ZIP - Format - Dateien, würde ich empfehlen , das Herunterladen 7zipund 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 p7zipden Befehl 7zund 7za, mit dem Sie Ihre eigenen 7z-Archive erstellen können.
7zakann auch Standard- Zip-Archive ( pkzip ) dekomprimieren (und sie auch mit dem -tzipSwitch erstellen ).
Komprimieren:
7za a archive.7z file1 file2 directory/
Dekomprimieren:
7za x archive.7z
Es kann auch selbstextrahierende Archive mit dem -sfxSchalter 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 -JSchalter mit tar:
tar cJf archive.tar.xz file1 file2 dir
xzist ein UNIX - Tool, das LZMA2 für die Kompression, funktioniert aber die Art und Weise verwendet gz, bz2usw. funktioniert. Es funktioniert sogar als Filter.
7z schafft keine Archive mit voller Dateisystem Informationen über UNIX, so würden Sie verwenden müssen , tarbevor Sie 7z (aber da 7z speichert andere Informationen über die tarDatei, 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 aund 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
tarhat den Vorteil, dass es im Vergleich zu GNU tarund 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, unzipusw. von der Kommandozeile, aber sie verwenden eine andere Syntax.
Die üblichste Antwort ist pax, welche über cpiound empfohlen wird tar.
Im Gegensatz zu cpiound POSIX tar, aber wie GNU tar, paxist 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.
paxUnterstützung von Zip - Archiven?
paxArchive 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.
dtrxist in den meisten Repositorys verfügbar, sodass Sie apt| yumes 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 zipmit 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 -@