如何在Linux中压缩文件列表

Modified on: Mon, 04 Mar 2019 23:00:02 +0800

我需要将很多文件压缩到一个目录中。我不想压缩目录中的所有文件,而只是匹配某个查询的文件。

我做了

grep abc file-* > out.txt 

在每个文件中创建一个包含“abc”所有实例的文件。我需要文件本身。
我怎么能告诉bash只压缩那些文件?

最佳答案

很简单:

zip archive -@ < out.txt

也就是说,如果out.txt文件每行包含一个文件名。它会将out.txt中的所有文件添加到一个名为archive.zip的存档中。

-@选项从STDIN读取zip

如果您想跳过创建临时out.txt文件,您也可以使用grep的功能来打印文件名。 -r启用递归搜索(在您的情况下可能没有必要),-l

grep -rl "abc" file-* | zip archive -@
作者:slhck

相关问答

添加新评论