我如何搜索文件并将其压缩在一个zip文件中

LOG*_*GAN 31 linux operating-system

我尝试使用以下命令搜索文件并压缩它们

find . regexpression -exec zip {} \;
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我怎样才能做到这一点?

iab*_*der 64

您使用的命令将分别在每个文件上运行zip,请尝试以下操作:

find . -name <name> -print | zip newZipFile.zip -@
Run Code Online (Sandbox Code Playgroud)

-@告诉拉链从输入读取文件,从人拉链(1) :

- @文件列表.如果文件列表指定为 - @ [Not on MacOS],则zip从标准输入而不是命令行获取输入文件列表.

  • 刚在 Mac 上试过,效果很好。我想你可以删除免责声明 (2认同)

jhe*_*ngs 15

您还可以提供find命令的结果名称:

zip name.zip `find . -name <name> -print`
Run Code Online (Sandbox Code Playgroud)

这是您正在使用的shell的一个功能.您可以搜索"反引号"以确定shell如何处理此问题.


Dan*_*nes 14

您的回复很接近,但这可能会更好:

find -regex 'regex' -exec zip filname.zip {} +
Run Code Online (Sandbox Code Playgroud)

这将把所有匹配的文件放在一个名为filename.zip的zip文件中.您不必担心文件名中的特殊字符(如换行符),如果您输出结果,则可以使用.

  • @aliopi +表示用所有文件名替换{},而不是为每个文件执行一次命令. (3认同)