我正在尝试使用脚本下载大型 Gitlab 存储库,Gitlab 提供了zip
、tar.gz
和选项tar.bz2
,tar
我想选择具有最小的文件大小。
这些扩展/方法中的一个是否可以保证比另一个小?
答案1
首先;tar
它不以任何方式压缩,而是存储原始文件和相关元数据(文件名、标志、校验和等)。
不过,您可以从多个压缩器中选择一个来通过管道传输 tar 存档;请参见下文。如名称扩展名所示,tar.gz
已通过管道传输gzip
,并tar.bz2
通过管道传输bzip2
。
最新版本的压缩机将是最有效的。不过最终的差异可能不会太大。
实际使用的数据和压缩机设置可能会产生较大的差异。
$ zip --version 版权所有 (c) 1990-2008 Info-ZIP - 输入“zip“-L””获取软件许可证。 这是由 Info-ZIP 发布的 Zip 3.0(2008 年 7 月 5 日)。 ... $ gzip --版本 gzip 1.10 版权所有 (C) 2018 自由软件基金会,Inc. ... $ bzip2——版本 bzip2,一款块排序文件压缩器。版本 1.0.8,2019 年 7 月 13 日。 版权所有 (C) 1996-2019,作者:Julian Seward。
进而tar
$ tar--version tar(GNU tar)1.30 ... $ tar--help 用法:tar [选项...] [文件]... GNU 'tar' 将许多文件保存到单个磁带或磁盘档案中,并且可以 从档案中恢复单个文件。 ... 压缩选项: -a, --auto-compress 使用档案后缀来确定压缩 程序 -I,–use-compress-program = PROG 通过 PROG 过滤(必须接受 -d) -j, --bzip2 通过 bzip2 过滤档案 -J, --xz 通过 xz 过滤档案 --lzip 通过 lzip 过滤档案 --lzma 通过 xz 过滤档案 --lzop 通过 lzop 过滤档案 --no-auto-compress 不使用档案后缀来确定 压缩程序 -z, --gzip, --gunzip, --ungzip 通过 gzip 过滤档案 --zstd 通过 zstd 过滤档案 -Z, --compress, --unpress 通过压缩过滤档案