Зіпсуйте все в поточному каталозі


84

Я хотів би стиснути і упакувати все, включаючи файли та папки в поточному каталозі, в один ZIP-файл на Ubuntu.

Яка була б найзручніша команда для цього (і назва інструменту, який потрібно встановити, якщо такий є)?

Редагувати: Що робити, якщо мені потрібно виключити одну папку або кілька файлів?

Відповіді:


103

Встановити zipта використовувати

zip -r foo.zip .

Ви можете використовувати прапори -0(немає) на -9(найкраще) для зміни компресії

Виключення файлів можна здійснити за допомогою -xпрапора. З чоловічої сторінки:

-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.

+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
Анвар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.