【问题标题】:How to create multiple ZIP files in a folder based on 4GB size restriction?如何根据 4GB 大小限制在文件夹中创建多个 ZIP 文件?
【发布时间】:2022-01-19 06:52:24
【问题描述】:

我有一个包含文件的目录,我需要根据 4GB 大小限制为这些文件创建单独的 ZIP 文件而不创建多部分 ZIP 存档。有人可以在这里帮助如何实现这一目标吗?

我知道将 -s 参数传递给 ZIP 命令 (zip -s 4096m zipfile.zip *.xml),但 htis 会创建一个我不需要的多部分 ZIP。

并且我需要根据 4GB 大小使用增量 ZIP 文件名拆分 ZIP 文件,例如 zip -s 4096 archive.zip *.xml。它应该在同一目录中创建 ZIP 文件,如 archive.ziparchive1.zip,大小为 4GB 拆分等,但不能创建多部分 ZP 文件,如 archive.ziparchive.z01 等。

【问题讨论】:

  • 你必须提供更多细节:你想要什么样的结果文件?目标和目标是什么。
  • 使用临时文件,您可以逐个文件添加文件,使用tar --append -f tarballtest.tar "$file",而[[ $(zstd <tarballtest.tar | LANG=C wc -c) -lt 4000000000 ]],等等...
  • 我需要根据 4GB 大小使用增量 zip 文件名拆分 zip 文件,例如 zip -s 4096 archive.zip *.xml 应该将 zip 创建为 archive.zip,archive1。 zip 大小为 4gb 的拆分等在同一目录中,而不是像 archive.zip、archive.z01 等的多部分 zip。
  • 好吧,我猜的差不多了。所以是的:您最好使用tar | zstd,以提高速度和效率。请参阅我之前关于 while 循环的评论...
  • 想要在 cmets 中添加详细信息,请编辑您的问题!清楚地补充说,目标是能够 1. 索引您的档案文件和 2. 能够直接访问一个档案文件而无需重新构建整个档案。

标签: linux bash rhel7


【解决方案1】:

我理解你的问题如下

但你想创建ZIP files with size limit

命令zipslit

读取一个 zipfile 并将其拆分为更小的 zipfile。

其中的参数

  -n size
         Make zip files no larger than "size" (default = 36000).

因此,要拆分 ZIP 文件,请进行测试

zip zipfile.zip *.xml
zipsplit -t zipfile.zip

【讨论】:

  • 我可以看到 zipsplit 有拆分 2GB[computerhope.com/unix/zipsplit.htm] 文件的限制,仅在我的情况下它应该是 4GB 文件,但我在循环中使用 zipsize 计数器解决了我的问题,当它达到它会增加 zip带seq的名称。
猜你喜欢
  • 1970-01-01
  • 2021-04-02
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
  • 2013-07-10
  • 2017-01-17
  • 2012-12-06
  • 2023-02-01
相关资源
最近更新 更多