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

时间:2012-11-05 15:09:36

标签: linux operating-system

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

find . regexpression -exec zip {} \;
然而,它不起作用。我怎么能这样做?

3 个答案:

答案 0 :(得分:57)

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

find . -name <name> -print | zip newZipFile.zip -@

-@告诉zip从输入中读取文件。来自人zip(1)

  

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

答案 1 :(得分:15)

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

zip name.zip `find . -name <name> -print`

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

答案 2 :(得分:12)

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

find -regex 'regex' -exec zip filname.zip {} +

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