Размещение списка --include в zip

Когда я выполняю команду

zip -r --include '*.rb' '*.sh' '*.zsh' '*irb*' tmp/small_v.zip bin

, я получаю сообщение об ошибке zip error: Invalid command arguments (не из чего выбирать)

Если я напишу команду как

zip -r tmp/small_v.zip bin --include '*.rb' '*.sh' '*.zsh' '*irb*'

, она сработает. Почему? Просматривая справочную страницу zip (в частности, параметр --include), я нахожу:

Хотя использовался синтаксис команды, требующий -i в конце командной строки, эта версия фактически позволяет -i ( или --include) где угодно . Список файлов заканчивается следующим аргументом, начинающимся с -, конца командной строки или списка. терминатор @ (аргумент, который просто @).

Из этого я бы сделал вывод, что обе версии команды должны работать.

Я использую zip 3.0 на MacOS Sierra.

0
03.05.2017, 16:23
2 ответа

Важной частью в этом случае является

Список файлов заканчивается следующим аргументом, начинающимся с -, концом командной строки или знаком конца списка @ (аргумент, который равен просто @).

При записи

zip -r --include '*.rb' '*.sh' '*.zsh' '*irb*' tmp/small_v.zip bin

tmp/small_v.zip и bin рассматриваются как файлы, переданные в --include, поэтому zip команда заканчивается без целевого файла и файлов для обработки.

--include может располагаться где угодно, но его аргументы должны иметь смысл, а остальные аргументы должны быть идентифицируемыми. Вместо этого вы можете написать свою команду как

zip --include '*.rb' '*.sh' '*.zsh' '*irb*' -r tmp/small_v.zip bin

, используя параметр -r, чтобы указать конец списка файлов для --include, или использовать @. ] для завершения списка:

zip -r --include '*.rb' '*.sh' '*.zsh' '*irb*' @ tmp/small_v.zip bin

Есть очень похожие примеры в конце раздела --include в странице руководства zip(1).

2
28.01.2020, 02:33

это немного странно, и я не `не проводил глубоких исследований, но мне нужно было использовать

zip -r --include="server_*"...

включить файлы, начинающиеся с sth, чтобы это работало в настройке CI/CD

0
28.01.2020, 02:33

Теги

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