Komprimieren von Ordnern und deren Inhalten in eine ZIP-Datei unter Linux

80

Wie erstelle ich eine ZIP-Datei, die jede Datei UND jeden Ordner im Verzeichnis enthält?


quelle
Muss es eine ZIP-Datei sein, oder suchen Sie nach einer komprimierten Datei?
1
Ich benutze 'tar': tar -zcvf archive.tar.gz directory / unix.stackexchange.com/questions/93139/…
njuhgn

Antworten:

124
zip -r foo.zip dir_path
Wesley Reis
quelle
Das -r bedeutet rekursiv und weist es an, alle Unterordner zu durchlaufen. Sie brauchen den .zipDateinamen ( foo.zip) nicht wirklich , da dieser sowieso erzeugt wird.
User2924019
Der Kommentar von @ user2924019, dass Sie den Zip-Namen nicht angeben müssen, ist in CentOS7 nicht wahr.
Killjoy
CentOS7 ist genau dort, wo ich das getestet habe.
user2924019
1
Nun, wir sind zu einem so genannten mexikanischen Patt gekommen, oder?
seizethecarp
16

Versuchen:

zip -r filename.zip /path/to/folder

Hinweis - Dies erfolgt rekursiv, dh es werden alle Ordner und alle Unterordner des angegebenen Ordners komprimiert.

icyrock.com
quelle
5

Verwenden Sie die -rOption. Von zip (1) :

-r

Durchlaufen Sie die Verzeichnisstruktur rekursiv. zum Beispiel:

zip -r foo foo

Der Name der Zip-Datei steht an erster Stelle. "Rekursiv" bedeutet, dass die ZIP-Datei Unterordner des angegebenen Ordners, die Unterordner dieser Ordner usw. enthält.

PleaseStand
quelle
Wohin geht die .zip-Datei nach dem Zippen?
Siraj Alam
3

Wenn Sie an eine Zip gebunden sind, würde ich Folgendes verwenden:

zip -r zipfilename directoryPath

Das -rist der Schlüssel, aber Sie können alle Optionen hier finden .

Amal Murali
quelle