私がコマンドを実行すると
zip -r --include '*.rb' '*.sh' '*.zsh' '*irb*' tmp/small_v.zip bin
エラーメッセージが表示されますzipエラー:無効なコマンド引数(選択する項目はありません)
コマンドを次のように書くと
zip -r tmp/small_v.zip bin --include '*.rb' '*.sh' '*.zsh' '*irb*'
効果があるなぜ? zipのマニュアルページ(具体的には--includeオプション)を見てみると、次のことがわかりました。
コマンドラインの末尾に-iを追加する必要があるコマンド構文が使用されましたが、このバージョンでは 実際、どこでも-i(または--include)を受け入れます。。ファイルのリストは、 - で始まる次の引数、コマンドラインの終わり、またはリスト終了者@(@引数のみ)で終了します。
これにより、私は両方のバージョンのコマンドが機能しなければならないと結論付けました。
私はMacOS Sierraで実行されているzip 3.0を使用しています。
答え1
この例の重要な部分は
ファイルのリストは、で始まる次の引数
-
、コマンドラインの終わり、またはリストの終端@
(引数のみ)で@
終了します。
書くとき
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
ちょっと変で詳しく見ていないけど
zip -r --include="server_*" ...
CI / CD設定で実行されるようにsthで始まるファイルが含まれています。