根据文件列表的内容创buildzip文件

我用diff文件创build了一个diff-files.txt文件,里面有6000多个文件path。 现在我想要创build一个基于这些文件的zip。

我知道我可以压缩多个文件:

 zip diffedfiles.zip file1 folder1 -r 

但是这对6000多个文件无效。 有没有办法根据diff-files.txt的内容压缩它?

 zip diffedfiles.zip {diff-files.txt} -r 

像这样的东西?

在Linux上,您可以使用 – @选项:

– @文件列表。 如果一个文件列表被指定为 – @ [不是在MacOS上],zip从标准input中取出input文件的列表,而不是从命令行input。 例如,

  zip -@ foo 

将存储在foo.zip的标准input中每行列出的文件。

所以在你的情况下,你应该能够做到:

 cat diff-files.txt | zip -@ diffedfiles.zip 

得到它了:

 zip diffedfiles.zip $(cat diff-files.txt) -r