Zip все в текущем каталоге

84

Я хотел бы сжать и упаковать все, включая файлы и папки в текущем каталоге, в один ZIP-файл в Ubuntu.

Какая команда была бы наиболее удобной для этого (и название инструмента, которое необходимо было установить, если оно есть)?

Изменить: Что делать, если мне нужно исключить одну папку или несколько файлов?

Терри Ли
источник

Ответы:

103

Установить zipи использовать

zip -r foo.zip .

Вы можете использовать флаги -0(нет) для -9(лучше), чтобы изменить скорость сжатия

Исключить файлы можно через -xфлаг. С man-страницы:

-x files
--exclude files
          Explicitly exclude the specified files, as in:

                 zip -r foo foo -x \*.o

          which  will  include the contents of foo in foo.zip while excluding all the files that end in .o.  The backslash avoids the shell filename substitution, so that the name matching
          is performed by zip at all directory levels.

          Also possible:

                 zip -r foo foo -x@exclude.lst

          which will include the contents of foo in foo.zip while excluding all the files that match the patterns in the file exclude.lst.

          The long option forms of the above are

                 zip -r foo foo --exclude \*.o

          and

                 zip -r foo foo --exclude @exclude.lst

          Multiple patterns can be specified, as in:

                 zip -r foo foo -x \*.o \*.c

          If there is no space between -x and the pattern, just one value is assumed (no list):

                 zip -r foo foo -x\*.o

          See -i for more on include and exclude.
SkaveRat
источник
+1 Что делать, если я хочу исключить какую-то папку или файл?
Терри Ли
1
@TerryLiYifeng Я отредактировал свой ответ с информацией об этом
SkaveRat
18

Я думаю, что многие люди, которые приходят через Google на этот вопрос, имеют в виду «архивировать и сжимать», когда пишут «zip». Альтернативой формату zip является tar :

tar -czf copy.tar.gz whatever/

где сжатый архивный файл будет copy.tar.gz, а содержимое будет всем в этой папке.

 -c, --create
       create a new archive
 -z, --gzip, --gunzip --ungzip
 -f, --file ARCHIVE
       use archive file or device ARCHIVE
Мартин Тома
источник
1
Для xz, вариант--J or --xz
Анвар