Архивирование папок и их содержимого в файл .zip в Linux

80

Как мне сделать файл .zip, который содержит каждый файл И каждую папку в каталоге?


источник
Это должен быть .zip или вы просто после сжатого файла?
1
Я использую tar: tar -zcvf archive.tar.gz directory / unix.stackexchange.com/questions/93139/…
njuhgn

Ответы:

124
zip -r foo.zip dir_path
Уэсли Райс
источник
Параметр -r означает рекурсивный и указывает, что он должен пройти через все подпапки. Вам не нужно .zipуказывать имя файла ( foo.zip), так как оно все равно будет создано .
user2924019
Комментарий @ user2924019 о том, что вам не нужно указывать имя почтового индекса, неверен в CentOS7.
killjoy
CentOS7 именно там, где я это проверял.
user2924019
1
Ну, мы пришли к тому, что известно как мексиканское противостояние, не так ли?
seizethecarp
16

Пытаться:

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

Обратите внимание - это будет происходить рекурсивно, то есть будет происходить архивирование всех папок и всех подпапок данной папки.

icyrock.com
источник
5

Используйте -rопцию. Из почтового индекса (1) :

Путешествовать по структуре каталогов рекурсивно; например:

zip -r foo foo

Имя zip-файла идет первым. «Рекурсивно» означает, что ZIP-файл будет включать в себя подпапки данной папки, подпапки этих папок и т. Д.

PleaseStand
источник
Куда отправляется файл .zip после архивирования?
Сирадж Алам
3

Если вы связаны с почтовым индексом, я бы использовал:

zip -r zipfilename directoryPath

Это -rключ, но вы можете найти все варианты здесь .

Амаль Мурали
источник