回答:
GNUパラレルを使用すると、ジョブの要素数を制限できるだけでなく、ジョブ番号(一意のzipアーカイブ名の場合)を提供できるため、これを行うことができます。
$ touch $(seq 20)
$ find . ! -name "*.zip" -type f -print0 | parallel -0 -N 5 zip arch{#} {}
  adding: 1 (stored 0%)
  adding: 10 (stored 0%)
  adding: 11 (stored 0%)
  adding: 12 (stored 0%)
  adding: 13 (stored 0%)
  adding: 14 (stored 0%)
  adding: 15 (stored 0%)
  adding: 16 (stored 0%)
  adding: 17 (stored 0%)
  adding: 18 (stored 0%)
  adding: 19 (stored 0%)
  adding: 2 (stored 0%)
  adding: 20 (stored 0%)
  adding: 3 (stored 0%)
  adding: 4 (stored 0%)
  adding: 5 (stored 0%)
  adding: 6 (stored 0%)
  adding: 7 (stored 0%)
  adding: 8 (stored 0%)
  adding: 9 (stored 0%)
$ ls
1   11  13  15  17  19  20  4  6  8  arch1.zip  arch3.zip
10  12  14  16  18  2   3   5  7  9  arch2.zip  arch4.zip
このオプションで-N 5は、アーカイブあたりのファイル数が5に制限されてzipおり、{}
{#}(逐語的に、呼び出し中にあなたによって置換されるべきではない)、その結果、ジョブ番号に置き換えられarch1.zip、arch2.zipなど
-print0オプションfindと-0するオプションparallelタンデムでは、必ず特殊文字を含むファイル名が正しく処理されていることを確認します。
sudo apt-get install parallelます。
                    arch{13}?あなたは本当に#キャラクターを使う必要があります。どのシェルを使用していますか?
                    シェルのみの代替手段:(位置パラメーターの範囲)を介してCOUNTファイルのバッチを処理し、カウンターをインクリメントしてアーカイブに名前を付けます。"${@:START:COUNT}"shift COUNTc
セットする  -  *
c = 1
while(($#)); 行う
  if [$#-ge COUNT ]; その後
    zip $ {c} .zip "$ {@:1:COUNT }"
    c = $((c + 1))COUNT回 
    シフト
  そうしないと
    zip $ {c} .zip "$ {@}"
    シフト$#
  fi
やった