1

У меня много сайтов (более 100 каталогов). Я хочу создать уникальный zip-архив только с общедоступным подкаталогом.

Моя структура сейчас выглядит так:

- Site 1
--- app
--- tmp
--- log
--- public

- Site 2
--- app
--- tmp
--- log
--- public

- ... 100+ dirs ...

Теперь мне нужен уникальный zip, а затем, после распаковки, я хочу увидеть эту структуру:

- Site 1
--- public

- Site 2
--- public

- others

Любое предложение, как я могу сделать это с командами Linux zip/tar?

Спасибо!

4 ответа4

2

Просто используйте подстановочные знаки, чтобы указать только публичные каталоги:

zip file.zip -r */public
0
sites/ $ ls

Site 1
Site 2
...
Site 100

$ zip sites.zip * -r -x app tmp log
0

Как вы пометили «tar». Вы могли бы попробовать

tar cvjf /path/to/save/at/archive.tar.bz2 . --exclude='*/app' --exclude='*/tmp' --exclude='*/log'

создать архив bz2.

0

Используйте find для генерации списка:

find . -type d -name public -print > list.txt
tar -cvf test.tar -T list.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .