--zipにリストを配置する

--zipにリストを配置する

私がコマンドを実行すると

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.zipbinに提供されたファイルとして処理されるため、コマンド--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で始まるファイルが含まれています。

関連情報