Linux:从管道将命名文件添加到 zip 存档

发布于 2024-08-17 06:31:24 字数 167 浏览 6 评论 0原文

是否可以使用类似以下内容:

command.exe |邮编>> archive.zip

命令2.exe | 邮编>> archive.zip

...最终会在一个 zip 存档中生成两个命名文件。 如果可能的话,这种方式会比使用临时文件更整洁。

Is it possible to use something like:

command.exe | zip >> archive.zip

command2.exe | zip >> archive.zip

...and end up with two named files inside one zip archive.
This way, if at all possible, would be neater than having temp files.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

随遇而安 2024-08-24 06:31:24

在新目录中创建两个命名管道(使用 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/

编辑:将 FI 标志添加到 zip 中,这确实使这成为可能。唯一需要注意的是,您需要 zip 3.0 才能正常工作。 Tar:ing FIFO:s 未实现(根据 tar 开发人员),因为您需要提前获得文件大小才能将其写入 TAR 标头。

Create two named pipes in a new dir (with mkfifo), pipe the output of the commands to these two pipes and then zip the dir.

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/

EDIT: Added the FI flag to zip, which does make this possible. The only caveat is that you need zip 3.0 for this to work. Tar:ing FIFO:s is not implemented (according to tar devs) because you need the file size in advance in order to write it to the TAR header.

雪化雨蝶 2024-08-24 06:31:24

请使用熔断器,fuze-zip

Use fuse, fuze-zip rather.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文