压缩包学习笔记

压缩包学习笔记

关于压缩包

压缩包的正式名称是归档文件,也叫压缩文件。压缩文件分为有损压缩和无损压缩。

有损压缩通过抛弃部分不需要的数据,来实现减小文件大小的功能,也就是说,作为用户,必须接受压缩程序对原始文件的重新解释。最有代表性的就是 MP3 文件。简单来说,MP3 通过滤过人耳无法捕捉到的声音(也就是利用人耳听觉系统的遮蔽效应特性),来达到压缩音频大小的效果。

无损压缩算法通过消除数据中的冗余和重复部分来压缩数据,同时保持数据的完整性和准确性。举个例子,这是一段无序的字符:

ppppsdwwwwqq

我们可以换一种书写方式,用数字代表这个字符出现的次数,省略1,所以就能得到:

4psd4w2q

这样,原长为 12 的字符串就被减少到了 8。当然,实际上的压缩算法比这更先进,也比使用有损压缩更复杂,而此时的压缩包已经是另一种文件格式了,如果想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。


我想写的主要是诸如 .zip 之类的压缩文件,因此下面就不多写有损压缩的东西了。


1
tar -a -c -f a.zip "E:\Test\示例.txt"

这会把 E:\Test\示例.txt 压缩为 a.zip 并存储到当前目录。 tar 主要是用来打包文件的,把多个文件或目录合并成一个文件,方便备份或传输。相当于一个封装好的文件夹。但 tar 本身不压缩,压缩的话通常要配合 gzip、bzip2 或者 xz 这些工具,比如用 -z 参数调用 gzip ,生成 .tar.gz 文件,或者用 -j 参数调用 bzip2 生成 .tar.bz2 文件。

由于我一直在用 Bandizip 作为主力压缩软件,下面涉及的操作也大多通过 Bandizip 进行。文末提供一个下载源,这是官网→

压缩包格式

下面列出一些常见的压缩包格式。来自:维基百科-压缩文件格式列表

文件后缀 用途/应用
.zip 使用 ZIP 压缩算法的压缩包格式。这是跨平台通用的压缩格式。可以使用 zip 命令创建和解压缩 ZIP 压缩包。
.rar 使用 RAR 压缩算法的压缩包格式。这是 Windows 平台上常用的一种压缩格式。可以使用 WinRAR 或 7-Zip 等软件来创建和解压缩 RAR 压缩包。
.tar.gz / .tgz 先使用 tar 命令打包,然后再使用 gzip 算法压缩的格式。这是 Linux/Unix 上常用的压缩包格式。可以使用 tar 命令来创建和解压缩。在 Linux/Unix 以外的系统不常见。
tar.bz2 与 tar.gz 类似,tar.bz2 格式先将文件打包,然后使用 bzip2 算法进行压缩。它也是 Linux 和 Unix 系统中常用的格式,通常提供比 gzip 更高的压缩率。
.7z 7Z 是一种具有高压缩率的格式,由 7-Zip 压缩软件使用。7Z 格式的支持软件相对较少,但它因其出色的压缩效率而受到青睐。7-Zip 软件可以用来创建和解压 7Z 文件。缺点是,一旦 7Z 文件受到哪怕极其微小的损坏,也可能使它包含的文件无法再取出。
gz & bz2 这两种格式通常用于压缩单个文件,而不是整个文件夹。gzip 和 bzip2 命令可以分别用来创建和解压这两种格式的压缩文件。

当然,还有诸如 ISO 等的压缩格式,但是因为都没有上述 6 个常用,故不在此提出。

如果你是 Linux 或者 Unix 用户,你一定全部见过了。所以下面会说一些后缀没那么常见的压缩包。

稀有压缩包后缀

比如 EXE,这样的压缩包可以直接双击解压缩(仅限 Windows),比如:

EXE 形态的压缩包

值得注意的是,如果你是 Bandizip 用户,这样的 EXE 文件并不会被 Windows 自动识别成窗口 icon,而是会变成 Bandizip 样式的 “EXE”。如图所示:

特别图案

双击打开后 Bandizip 会自动提示将要被解压到的目录,选择好并按下“开始”就执行解压任务了。

然而事实上,你可以直接把 .exe 改为 .zip 再进行解压(因为文件后缀名只是用于标记这个文件如何存储数据,后缀名跟里面的数据没有直接联系);但是相反,一个打包好的 ZIP 压缩包不能改后缀为 .exe。

压缩包特殊操作

上面说到,压缩包并不能被直接读取,需要解压缩解压缩压缩的逆操作。因此,在这两个步骤中可以加入一些特殊操作,以防止无关人等能读到自己的压缩包。很多资源站都会利用这些方式来防爆(防止资源被删)。

添加密码

压缩操作中,可使用添加密码的操作来让人无法直接读取,比如:

密码是:666

不建议使用这种密码,因为实在是太简单太容易破解了。同时,EXE 后缀的压缩包无法添加密码。

分卷压缩

在压缩页面,如果选用分卷压缩(仅支持 ZIP / ZIPX / 7Z / RAR / EXE / ACE / BZ2 / GZ,TAR 本身并不压缩,故不列入。数据来源:Bandizip。其实不能分卷的压缩格式大多数人一辈子也用不到),它会询问你每个卷应该多大,而不是多少卷,不过你可以靠自定义每一卷的大小来实现分割为特定卷数。

分卷压缩时每一卷都会恰好地分成所选的大小,比如,选择 25 MB,以 ZIP 格式为例:

容易发现每一个卷都是严格的 25,600,000 字节。

ZIP 分卷的显著特征是后缀名为 .z01, .z02, .z03, ..., .zip 。同样的,其他压缩后缀都有特定的分卷命名方式。

以下是常见压缩格式的分卷压缩后缀名示例,整理成表格供参考:

压缩类型 分卷后缀示例 说明
.tar + split .part00, .part01 使用 split 分割的 .tar 归档,默认生成 x00, x01,可自定义前缀(如 archive_part_00)。
.tar.gz .tar.gz.001, .tar.gz.002 分卷压缩时可能直接使用连续数字后缀(如结合 split 或自定义脚本)。
.zip .zip, .z01, .z02 使用 zip -s 分卷时,主文件为 .zip,后续分卷为 .z01, .z02 等。
.7z .7z.001, .7z.002 7-Zip 分卷压缩时默认使用 .001, .002 后缀。
.rar .part1.rar, .part2.rar WinRAR 分卷压缩默认生成 .part1.rar, .part2.rar
通用数字后缀 .001, .002 通用分卷命名方式(如 split -d 生成的 00, 01 或手动命名)。

解压缩时每个分卷必须在同一个文件夹里,全部卷的文件名必须一样,缺一不可

一些小技巧……

一些资源站,由于一些原因,需要加密文件,但又需要保证用户能够尽可能不受阻地获得文件,这时候,压缩密码和分卷压缩就派上用场了,且它们可以同时使用。

最典型的代表就是 Tearemix 提供的南方公园动画。原文是这样写的:

第一季打包:

为了防爆,夸克网盘分两个链接,先把两个链接里的文件下载到同一个文件夹,然后把 S01.zip 文件名改成 S01.7z.004 ,再解压两次即可。解压密码:sp1997

夸克网盘A部分  夸克网盘B部分

同时,针对一些限制文件大小的网盘(例如蓝奏云),也可以使用分卷压缩的方法存储大文件。缺点是,下载时会很麻烦。

例如:这有一个 200 MB 左右的文件,如果希望上传蓝奏云那看起来充值不可避免,这时候就要利用分卷。又因为蓝奏云限制文件后缀名,还需要手动修改后缀,并建议标记好卷数。

这是一个测试链接,看看你能不能解压成功 https://karlbaey.lanzoum.com/b00uz2k6rc 密码:WW2。

结语

压缩……也没什么特别的吧,就是看到现在的赛博文盲太多,解压都解不利索,突然就想学一些压缩包的知识。不过也好,现在学会了挺多实用技巧,不用再被人骂赛博文盲了(喜)。

(The end)

发布于

2025-04-13

更新于

2025-04-13

许可协议

评论

:D 一言句子获取中...