用 7zip 压缩和解压几乎任何格式
Windows 和 UNIX 各有多种流行的存档格式。Windows 常常使用 .zip 和 .cab 格式,UNIX 有 .tar、.cpio 和 .gzip 格式。UNIX 及其变体还使用 .rpm、.deb 和 .dmg。这些格式在网上都很常见,局面比较混乱。
为了以任意格式保存或解压数据,可以安装一大堆专用的实用程序,也可以安装 7zip。它是一种通用的转换器,可以压缩和解压任何存档。另外,7zip 还提供自己的格式,这种格式的压缩率比任何其他方案都高,容量限制达到 TB 级,支持强大的数据加密。
为了构建 7zip,需要从 SourceForge 上的项目页面下载 p7zip(7zip 的 UNIX 版本)的源代码(见 参考资料)。解压 tarball,进入源代码目录,运行 make。(与 multitail 相似,通用的 makefile 应该足够了;如果构建不成功,应该选择提供的专用 makefile 之一)。
$ wget \
p7zip_4.65_src_all.tar.bz2
$ tar xjf p7zip_4.65_src_all.tar.bz2
$ cd p7zip_4.65
$ make
$ sudo make install
构建过程会生成并安装实用程序 7za。输入不带参数的 7za,即可看到可用命令和选项的列表。与 tar 相似,每个命令都是一个字母,比如 a 在存档中添加文件,x 提取文件。
为了试试这个实用程序,以多种格式创建 p7zip 源代码的存档,然后用 7za 解压每个存档:
$ zip -r p7.zip p7zip_4.65
$ 7za -ozip x p7.zip
$ tar cvf p7.tar p7zip_4.65
$ 7za -otar x p7.tar
$ bzip2 p7.tar
$ 7za -so x p7.tar.bz2 | tar tf -
从上到下,7za 依次解压 .zip、.tar 和 .bz2 存档。在最后一个命令中,7za 解压 .bz2 存档并把输出写到 stdout,在这里 tar 解压文件并编制目录。与 tar 相似,7za 可以作为管道(|)的源或目的地,因此很容易与其他实用程序组合在一起。