Intereting Posts

как исключить каталоги и файлы, застегивающие каталог?

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

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

без каких-либо успехов; node_modules – это папка в главном, а bower_components – внутри приложения папки.

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

 -x ".*" 

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

сделайте это так:

 -x .\* 

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

сделайте это так:

 -x \*.\* 

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

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

сделайте это так:

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

 -x "*.zip" 

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

сделайте это так:

 -x \*.zip 

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

Что-то вроде этого должно сделать трюк:

 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 – список каталогов и типов файлов (расширений) для исключения.

Это отлично работает для меня на Ubuntu 16.04:

 sudo zip -r /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*" -x "*.cache*" -x "*test*" 

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

 for i in */; do zip -r "${i%/}.zip" "$i" -x "*/\node_modules/*" ; done