как исключить каталоги и архивировать файлы в каталоге?

Мне нужно заархивировать каталог, исключая некоторые подкаталоги и файлы; Я использовал это:

zip -r zipfile.zip . -x ".*" -x "app/bower_components" -x "node_modules" -x "*.zip" -x "node_modules"

без какого-либо успеха; node_modules является папкой в ​​основной папке, а bower_components находится внутри приложения папки

.
32
задан 5 November 2013 в 21:08

6 ответов

Нечто подобное должно сработать:

zip -r zipped.zip dir1/ -x */\.* *.git* \.* *.zip *.csv *.json *.rb *.bak *.swp *.back *.merge *.txt *.sh dir1/node_modules/**\* dir1/bower_components/**\* dir1/dist/**.*

Где следующий -x - список каталогов и типов файлов (расширений), которые нужно исключить.

0
ответ дан 5 November 2013 в 21:08

Я просто угадываю, что вы хотите.

-x ".*"

исключить все файлы, начинающиеся с точки

сделать это следующим образом:

-x .\*

исключить все файлы (с точкой в ​​имени файла)

сделать например:

-x \*.\*

-

-x "app/bower_components" -x "node_modules"

исключают этот каталог и все файлы в нем

делают это следующим образом:

-x app/bower_components/\* -x node_modules/\*

-

-x "*.zip"

исключить все ZIP-файлы

сделать это следующим образом:

-x \*.zip

Вы исключаете node_modules дважды

0
ответ дан 5 November 2013 в 21:08

в каждом проекте пропускайте node_modules следующим образом:

for i in */; do zip -r "${i%/}.zip" "$i" -x "*/\node_modules/*" ; done
0
ответ дан 5 November 2013 в 21:08

Предполагая, что ваш каталог является git-репозиторием (и, судя по этому вопросу, это очень вероятно), вы можете добавить каталоги, которые вы хотите исключить, в файл .gitignore и использовать команду git archive для архивирования содержимого вашего каталог:

git archive --format=zip HEAD -o zipfile.zip

В вашем примере файл .gitignore должен выглядеть следующим образом:

node_modules
app/bower_components
0
ответ дан 5 November 2013 в 21:08

Это прекрасно работает для меня в Ubuntu 16.04:

sudo zip -r /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*" -x "*.cache*" -x "*test*"
.
0
ответ дан 5 November 2013 в 21:08

исключить все папки node_modules во всех папках.

zip -r node.zip . -x "**/node_modules/*"
14
ответ дан 29 December 2019 в 19:19

Другие вопросы по тегам:

Похожие вопросы: