是否可以使用类似的东西:
命令.exe | zip >> 存档.zip
命令2.exe | zip >> 存档.zip
...并在一个 zip 存档中得到两个命名文件。 如果可能的话,这种方式比使用临时文件更整洁。
最佳答案
在新目录中创建两个命名管道(使用 mkfifo),将命令的输出通过管道传输到这两个管道,然后压缩目录。
mkdir tmp
mkfifo tmp/1.out
mkfifo tmp/2.out
command1.exe > tmp/1.out
command2.exe > tmp/2.out
zip -FI -r tmp.zip tmp/
编辑:向 zip 添加了 FI 标志,这确实使这成为可能。唯一需要注意的是你需要 zip 3.0 才能工作。 Tar:ing FIFO:s 未实现(根据 tar 开发人员),因为您需要提前知道文件大小才能将其写入 TAR header 。
关于Linux:将命名文件从管道添加到 zip 存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2021873/