使用するコマンドは、各ファイルに対して個別に zip を実行します。これを試してください:
find . -name <name> -print | zip newZipFile.zip [email protected]
[email protected]
入力からファイルを読み取るようにzipに指示します。 man zip(1) から
[email protected]
ファイル リスト。 [email protected]
でファイルリストを指定した場合 [MacOS 以外]、zip は、コマンド ラインからではなく、標準入力から入力ファイルのリストを取得します。
あなたの回答は近いですが、こちらの方がうまくいくかもしれません:
find -regex 'regex' -exec zip filname.zip {} +
これにより、一致するすべてのファイルが filename.zip という 1 つの zip ファイルにまとめられます。結果をパイプした場合に必要となる、ファイル名の特殊文字 (改行など) について心配する必要はありません。
find コマンドの結果として名前を指定することもできます:
zip name.zip `find . -name <name> -print`
これは、使用しているシェルの機能です。 「バッククォート」を検索して、シェルがこれをどのように処理するかを判断できます。