如何将文件列表传递给linux zip命令

new*_*bie 5 linux svn git zip export

我正在使用Git进行版本控制,与SVN不同,我没有遇到过在2个版本,分支或标签之间执行已更改文件导出的固有方法.

作为替代方案,我想使用linux zip命令并传递一组文件名,但是文件名是另一个命令git diff的结果.下面是我想要实现的一个例子:

zip /home/myhome/releases/files.zip git diff --name-only -a 01-tag 00-tag
Run Code Online (Sandbox Code Playgroud)

但是上面的方法不起作用,因为我猜'zip'命令将git操作视为其命令选项的一部分.

有人知道如何制作像上面这样的作品吗?

谢谢

sou*_*rge 6

您需要在子shell中执行git命令:

zip /home/myhome/releases/files.zip `git diff --name-only -a 01-tag 00-tag`
# another syntax (assuming bash):
zip /home/myhome/releases/files.zip $(git diff --name-only -a 01-tag 00-tag)
Run Code Online (Sandbox Code Playgroud)

另一个选项是xargs命令:

git diff --name-only -a 01-tag 00-tag | xargs zip /home/myhome/releases/files.zip
Run Code Online (Sandbox Code Playgroud)