在Linux中使用7zip/7zz

在Linux中使用7zip/7zz文章目录背景 需求安装 使用下载安装使用解压缩小结授人以渔问题 解决方案 bash 7zz cannotexecut Execformater 现象解决方案 lib so 6 文件参考背景 需

大家好,欢迎来到IT知识分享网。

背景+需求

整体需求跟文章【在Linux上使用7z的最高压缩比来压缩文件】中介绍的类似。

我们的服务遇到一个线上问题,最后定位下来是内存问题,dump了文件,但是有3.4G,tar打包+压缩后还有1.4G。但是这个环境网络受限,下载速度非常慢,而且离谱的是第一次耐着性子用Chrome下载,结果文件损坏,还得重新下载。直接原地爆炸。

所以这个时候需求就很明确了:待下载的文件越小越好,这样即使下载出错,重新下载一次的代价也不大;云端的压缩时间和代价反而不重要了。那么这时就需要一个极致压缩的工具。

然后就来到了7zip了。

安装+使用

下载

访问7zip官网,从https://www.7-zip.org/download.html选择相应的版本下载即可。

或者命令行下载,例如:

wget https://www.7-zip.org/a/7z2102-linux-x64.tar.xz 

安装

1 解压:

# mkdir 7zip # mv 7z2102-linux-x64.tar.xz ./7zip && cd 7zip tar -xf 7z2102-linux-x64.tar.xz 

因为解压后的文件和目录都是放在了当前目录,最好单独创建一个文件夹,然后在独立文件夹中解压。

2 安装

将7zz移动到/usr/bin目录下:

cp 7zz /usr/bin/7zz 

之后就可以使用了。

如果不想安装,也是可以直接运行使用的。如果不能使用,那么还是考虑安装方案吧。

使用

参考文章2,这里给出个人使用的命令:

./7zz a -m0=lzma2 -mx=9 heap.7z heapDumpFile.hprof 稍作解释。、 这里大多数参数都使用了默认值,只指定了压缩算法和压缩等级。 具体含义: a 操作类型:添加文件到压缩包。 -m0=lzma2 指定压缩算法。算法之间的区别可以查看7zip官方文档,例如7-zip.org/7z.html
-mx=9 压缩等级,最高压缩等级为9,对应windows下的极致压缩。 heap.7z 压缩后的文件名 heapDumpFile.hprof 源文件名字 

解压缩

# 压缩 ./7zz a archive1.zip subdir # 解压 ./7zz x archive.zip 

小结

到了这里,基本上上面的需求都满足了,就是用服务器的压缩时间换取更好的网络传输效率。实际中测试下来,3.4G的hprof文件压缩后只有154M,提升非常可观。

授人以渔

基本上面的功能已经可以满足我们的需求了。不过如果后续有另外的需求,或者你的需求跟我们不一样,或者就是想要多学习一些7zip命令等知识,那么可以继续看这一部分。

关于什么是7zz、7za,它们的区别,有哪些命令,每个命令有哪些参数,都是什么含义,最好的文档就是官方文档。

下载的压缩包中,除了7zz文件,还有readme.txt文档和MANUAL文件夹,更多的资料可以查看readme.txt文件,或者用浏览器打开MANUAL文件夹下的start.htm文件,根据自己的需求查看相关页面。比如命令列表就可以查看MANUAL/cmdline/commands/index.htm

问题+解决方案

bash: ./7zz: cannot execute binary file: Exec format error

现象

第一次的时候,直接在解压后的文件夹内直接运行7zz:

./7zz 

然后遇到bash: ./7zz: cannot execute binary file: Exec format error错误。后面在本机的虚拟机也遇到了这个问题。不过在写文章的时候,在另一台电脑上尝试复现,结果反而没有问题,神奇。反正如果真的遇到这个问题,可以尝试下面的解决方案。

解决方案

就是一定要放到/usr/bin/目录下才可以。直接运行就是不行。很离谱,不过暂时也没复现,也没查出为什么(文件权限没问题,操作系统和7zz都是64位)。有知道原因的同学欢迎评论交流。

lib.so.6文件

CentOS下报错,网上有类似的解决方案,线上环境,没有乱搞。有需要可以根据报错Google查找解决方案。

参考

本次主要参考文章如下:

参考文章:

  • 7-Zip 首度推出官方支援的 Linux 版本
  • 在Linux上使用7z的最高压缩比来压缩文件

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/133223.html

(0)
上一篇 2025-07-25 14:33
下一篇 2025-07-25 15:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信