第 5.9 节 压缩与解压
zip
技巧
zip 中文或非英文字符乱码是很正常的一件事。因为 Windows 默认使用 GBK,而 Linux 或 UNIX 则使用 UTF-8。一般国产操作系统(如 UOS、UbuntuKylin)之所以不乱码是打了补丁的。至于为什么这个补丁没有提交到上游,有知道的人欢迎 PR。
安装 zip
使用 pkg
使用 ports
zip 压缩与解压
解压 zip
zip 解压的话,基本系统自带 unzip
,不用安装。
压缩成 zip
tar
基本系统自带 tar
,不用安装。
tar 即“tape archive”(磁带归档),最早是为了在磁带上进行存储的。
思考题
归档文件包就是压缩率为
0
的文件集合(将多个文件/目录打包成一个单一文件便于存储)。单纯的tar
操作仅打包,不压缩。而压缩的本质是通过某种算法缩减文件所占用的体积,而非针对目录。所以常见压缩软件本质上是先将目录归档成为文件,然后再将其压缩。如何理解归档与压缩的关系?
解压 tar
x
:Extract 解压的意思v
:verbose 啰嗦模式即输出详细信息f
:file 指定文件C
:cd
的意思,即指定路径
压缩成 tar
xz
基本系统自带 xz
、unxz
,同样也不用安装。
解压缩 unxz
unxz
压缩成 xz
xz
7z
FreeBSD 操作系统下,7z 命令通过下载 archivers/7-zip
使用。
安装 7-zip
使用 pkg:
通过 Ports:
示例
压缩成 7z
解压缩 7z
rar
rar 是 Windows 上常见的压缩工具。
安装 rar
通过 pkg;
通过 Ports:
使用 rar
压缩成 rar
解压 rar
zstd
基本系统内置 zstd,无需安装。参见 Add support for zstd-compressed user and kernel core dumps.
压缩成 zstd
使用 zstd 压缩单个文件
使用 zstd 压缩文件夹
zstd 不支持压缩文件夹(参见 How can I compress a directory?),故需要先打包成 tar:
思考题
zstd 为什么不支持压缩文件夹?有哪些可能性。
再把 test.tar
压缩成 test.tar.zst
解压 zstd
解压到当前路径
注意
这样解压出来的是
test.tar
,还需要再使用tar
解压一遍。
解压到指定路径
注意
这样解压出来的是
test.tar
,还需要再使用tar
解压一遍。
最后更新于