A parte importante neste caso é
The list of files terminates at the next argument starting with
-
, the end of the command line, or the list terminator@
(an argument that is just@
).
Quando você escreve
zip -r --include '*.rb' '*.sh' '*.zsh' '*irb*' tmp/small_v.zip bin
tmp/small_v.zip
e bin
são tratados como arquivos fornecidos para --include
, portanto, o comando zip
acaba sem nenhum arquivo de destino nem arquivos para processar.
--include
pode ser colocado em qualquer lugar, mas seus argumentos ainda têm que fazer sentido, e os argumentos restantes precisam ser identificáveis. Você poderia escrever seu comando como
zip --include '*.rb' '*.sh' '*.zsh' '*irb*' -r tmp/small_v.zip bin
em vez disso, usando o parâmetro -r
para identificar o final da lista de arquivos para --include
ou use @
para finalizar a lista:
zip -r --include '*.rb' '*.sh' '*.zsh' '*irb*' @ tmp/small_v.zip bin
Há exemplos muito semelhantes no final da seção --include
em o zip(1)
manpage .