Архивирование содержимого папки без включения самой папки

78

У меня есть каталог, folderкоторый выглядит так:

folder
      -> root_folder
                    -> some files

Я хочу заархивировать этот каталог zipped_dir, я попытался:

zip -r zipped_dir.zip folder/*

Но это создает ZIP, который выглядит следующим образом:

zipped_dir
          -> folder
                   -> root_folder
                                 -> some files

другими словами, это каталог, содержимое которого я хочу сжать. Как я могу исключить этот родительский каталог из ZIP, ничего не перемещая?

IE я хотел бы этот конечный результат:

zipped_dir
          -> root_folder
                        -> some files
сочный
источник

Ответы:

75

Попробуйте использовать эту команду (вы поймете идею)

cd folder; zip -r ../zipped_dir.zip *

Может быть, есть другой способ, но это самый быстрый и простой для меня :)

Ромео Нинов
источник
2
это прекрасно работает, делая этот трюк. обратите внимание: это будет делать chroot .
loretoparisi
эквивалент:zip -r zipped_dir.zip folder/*
Тобиас Колб
5
@TobiasKolb, может быть, вы не читаете вопрос. ОП не хотят иметь папку в сохраненном пути в zip.
Ромео Нинов
2
Кажется, единственный способ сделать это
Роберт
1
@PabloDiaz, в моем примере cd -будет делать работу (только одна команда) :) Илиcd ..
Ромео Нинов
31

Использование -j; например:zip -r -j zipped_dir.zip folder/*

Это не zip 'root_folder'.

AB
источник
7
Я получаю сообщение об ошибке, если у меня есть два файла с одинаковым именем.
Крис
11
OP, вероятно, хочет удалить только родительский каталог, но не все.
Tokland
Тем не менее , создает каталоги zip -r -j package.zip ./dist/static/*делает архивную структуруdist/static/myfiels
deathangel908
4
это также сгладит файлы дочерних каталогов.
Sumit Ramteke
3
-jвариант устранить все данные каталога и сохранять только файлы. То есть хранить все файлы в одном каталоге «плоским» способом.
Роберт
5
zip -r -D zipped.zip *

-D указывает zip не создавать каталоги.

Л. Остин
источник
0

Это то, что работает для меня:

7z a zipped.zip ./rootDir/*

Это создаст zipархив с корнем: любые файлы / каталоги внутри rootDir.

Маринос Ан
источник