El comando que use ejecutará zip en cada archivo por separado, intente esto:
find . -name <name> -print | zip newZipFile.zip [email protected]
El [email protected]
le dice a zip que lea los archivos de la entrada. Desde man zip(1),
[email protected]
listas de archivos. Si una lista de archivos se especifica como [email protected]
[No en MacOS], zip toma la lista de archivos de entrada de la entrada estándar en lugar de la línea de comando.
Tu respuesta está cerca, pero esto podría funcionar mejor:
find -regex 'regex' -exec zip filname.zip {} +
Eso pondrá todos los archivos coincidentes en un archivo zip llamado filename.zip. No tiene que preocuparse por los caracteres especiales en el nombre del archivo (como un salto de línea), lo que haría si canalizara los resultados.
También puede proporcionar los nombres como resultado de su comando de búsqueda:
zip name.zip `find . -name <name> -print`
Esta es una característica del shell que está utilizando. Puede buscar "comillas invertidas" para determinar cómo su shell maneja esto.