Vishnu Asked: 2016-02-29 08:00:07 +0800 CST2016-02-29 08:00:07 +0800 CST 2016-02-29 08:00:07 +0800 CST 如何压缩有大小限制的文件? 772 我有一个从文件夹压缩文件的脚本。我想确保压缩文件不超过 10 MB。如果大小超过 10MB,则应创建另一个 ZIP 文件。 是否有任何命令(或其他方法)可用于此? linux 3 个回答 Voted Best Answer ricmarques 2016-02-29T08:36:22+08:002016-02-29T08:36:22+08:00 您可以使用“ --split-size ”选项使用“ zip ”本身的“拆分存档”功能。 从“zip”手册页(“ man zip”): (...) 拆分存档的一种用途是将大型存档存储在多个可移动 媒体上。对于包含 20 个拆分文件的拆分存档,文件通常 命名为(将 ARCHIVE 替换为您的存档名称) ARCHIVE.z01、ARCHIVE.z02、...、ARCHIVE.z19、ARCHIVE.zip。请注意, 最后一个文件是 .zip 文件。 (...) -s splitsize --split-size 分割大小 拆分大小是一个可选的数字,后跟一个乘数。 目前该数字必须是整数。乘数 当前可以是 k(千字节)、m(兆字节)、g(千兆字节) 或 t(太字节)之一。由于 64k 是最小拆分大小,因此 没有乘数的数字默认为兆字节。例如,要创建 一个名为 foo 的拆分存档,其中包含 bar 目录的内容,拆分为 670 MB,这可能对刻录 CD 有用,命令: zip -s 670m -r foo bar 可用于。 因此,要创建拆分 zip 存档,您可以执行以下操作(“ -r”是包含目录子目录的“递归”开关): $ zip -r -s 10m archive.zip directory/ 要解压缩文件,“ zip”手册页说明您应该使用“-s 0`”开关: (...) zip -s 0 split.zip --out unsplit.zip 将拆分存档转换为单文件存档。 (...) 因此,您首先使用“-s 0”开关“取消拆分”ZIP 文件: $ zip -s 0 archive.zip --out unsplit.zip ...然后您解压缩未拆分的文件: $ unzip unsplit.zip Henrik Carlqvist 2016-02-29T08:38:01+08:002016-02-29T08:38:01+08:00 tar -czvf - /path/to/files | split -b 10M - archive.tar.gz 会给你一些文件: archive.tar.gzaa archive.tar.gzab ... 然后可以使用以下方法解压缩: cat archive.tar.* | tar -xzvf - Jay Marm 2019-02-20T16:21:12+08:002019-02-20T16:21:12+08:00 这是我对 5GB 文件的处理方式(按照 OP 的要求分为 1GB 和 10MB)... 示例:将5GB 文件拆分为1GB 文件以复制到 FAT32 USB(文件名“FIVE_GB_FILE.ISO”) 第1步:压缩文件(不压缩,与源文件相同的目录) zip -0 FIVE_GB_FILE.ZIP FIVE_GB_FILE.ISO 第 2 步:将 5GB 的 zip 文件拆分为 1GB 的 zip 文件 zip -s 1000m SPLIT_5GB_FILES FIVE_GB_FILE.ZIP 瞧……您应该有以下 1GB 文件(以及原始文件和步骤 1 中的 zip) SPLIT_5GB_FILES.zip SPLIT_5GB_FILES.Z01 SPLIT_5GB_FILES.Z02 SPLIT_5GB_FILES.Z03 SPLIT_5GB_FILES.Z04
您可以使用“ --split-size ”选项使用“ zip ”本身的“拆分存档”功能。
从“zip”手册页(“
man zip
”):因此,要创建拆分 zip 存档,您可以执行以下操作(“
-r
”是包含目录子目录的“递归”开关):$ zip -r -s 10m archive.zip directory/
要解压缩文件,“
zip
”手册页说明您应该使用“-s 0`”开关:因此,您首先使用“-s 0”开关“取消拆分”ZIP 文件:
$ zip -s 0 archive.zip --out unsplit.zip
...然后您解压缩未拆分的文件:
$ unzip unsplit.zip
会给你一些文件:
然后可以使用以下方法解压缩:
这是我对 5GB 文件的处理方式(按照 OP 的要求分为 1GB 和 10MB)...
示例:将5GB 文件拆分为1GB 文件以复制到 FAT32 USB(文件名“FIVE_GB_FILE.ISO”)
第1步:压缩文件(不压缩,与源文件相同的目录)
第 2 步:将 5GB 的 zip 文件拆分为 1GB 的 zip 文件
瞧……您应该有以下 1GB 文件(以及原始文件和步骤 1 中的 zip)