在Linux中使用7zip/7zz
文章目录
- 背景+需求
- 安装+使用
- 下载
- 安装
- 使用
- 解压缩
- 小结
- 授人以渔
- 问题+解决方案
- bash: ./7zz: cannot execute binary file: Exec format error
- 现象
- 解决方案
- lib.so.6文件
- 参考
背景+需求
整体需求跟文章【在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的最高压缩比来压缩文件
在Linux中使用7zip/7zz相关推荐
- 7z linux压缩命令行,教你Centos7中使用7zip压缩命令工具
教你Centos7中使用7zip压缩命令工具 7-Zip是一个支持7z(它实现了LZMA压缩算法,具有非常高的压缩比).LZMA2.XZ.ZIP.Zip64.CAB.ARJ.GZIP.BZIP2.TA ...
- linux解压7z文件,linux 中解压7z文件
linux 中解压7z文件 更新时间:2017-03-26 00:13:50 linux 解压.解压7z文件方法 安装7z源[root@VM_18_10_centos ~]# sudo yum ins ...
- linux一键分区脚本,【Shell】Linux中分区脚本
后天要中期答辩了,今天只刷了一个题,还没写出来,但是想更新博客,所以只有把之前写的东西贴出来了. 一个用于分区的shell脚本 1 #!/bin/bash #指定脚本解释器路径 2 echo &quo ...
- c++ 进程快照_如何在 Linux 中找出内存消耗最大的进程
很多次,你可能遇见过系统消耗了过多的内存.如果是这种情况,那么最好的办法是识别出 Linux 机器上消耗过多内存的进程. -- Magesh Maruthamuthu(作者) 很多次,你可能遇见过系统 ...
- linux的tar中ztvf,linux中的tar命令(2)
实例4:只将 /tar 内的 部分文件解压出来 命令: tar -zxvf /opt/soft/test/log30.tar.gz log2013.log 输出: [root@localhost te ...
- centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)
1 PHP简介 PHP(PHP: Hypertext Preprocessor的缩写,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Per ...
- java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能
想写个小程序实现类似linux中管道的功能,创建一个外部子进程,然后主进程不断地写输入给子进程,而后把子进程的返回值取出. 如下的小代码就是从stdin读入一个字符串,调用子进程(cat)返回这个串, ...
- linux 修改java版本_Linux 有问必答:如何在 Linux 中改变默认的 Java 版本
提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...
- linux ls 命令 路径,使用ls命令在Linux中使用完整路径列出文件
许多人会发现,这是重复的问题,但我已经经历了所有问题,然后问及这个主题,但没有为我工作.使用ls命令在Linux中使用完整路径列出文件 我想打印使用ls命令的特定文件格式的完整路径名到目前为止,我发现 ...
- linux中的ln属性,linux 常用基础命令 ln 详细介绍
命令介绍: ln是linux中又一个非常重要命令,ln是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我 ...
最新文章
- iOS transform解决连续多次旋转缩放,实现图片旋转缩放效果
- UESTC-1057 秋实大哥与花(线段树+成段加减+区间求和)
- BK资本管理公司创始人阐述BCH接下来的三种“催化剂”
- Leaf:GO语言游戏框架介绍及入门
- 布线干货 | 线缆截面积的测量标准
- Java之JVM调优案例分析与实战(1) - 高性能硬件上的程序部署策略
- 计算任意两个数之间1出现的次数的思维过程
- typescript获取数据库数据_肿瘤药敏多组学数据库(GDSC)的数据介绍和获取
- python股票历史最低点_Python统计某一只股票每天的开盘,收盘,最高,最低价格!...
- Ionic 框架宣布 2019 年将正式支持 Vue 和 React
- 矩池云上关于conda的一些使用技巧
- erlang 分布式数据库Mnesia 实现及应用
- WPS 破解宏 安装VBA VBA for WPS
- 分页存储管理系统中内存有效访问时间的计算
- 令牌环(Token-Ring)
- 麒麟linux怎么安装软件,中标麒麟Linux操作系统怎么安装软件?
- html背景颜色渐变代码
- SIP12 脚 电磁隔离放大器IC 模拟信号隔离放大器 电磁耦合隔离放大器
- 电子科技大学计算机专业考什么,2015年电子科技大学081203计算机应用技术考研专业目录及考试科目...
- ubuntu加装固态硬盘设置
热门文章
- python压缩视频文件_python压缩图片和视频
- Android JNI的调用
- 局域网内和局域网间的通信(交换机与路由器)
- 视频教程-Visio应用视频教程(上)-Office/WPS
- APKTOOL反编译使用教程
- 惠普计算机X9W2AV参数,MAX220CPE,MAX220CPE pdf中文资料,MAX220CPE引脚图,MAX220CPE电路-Datasheet-电子工程世界...
- lena-ts 图像处理和卷积操作
- 华表(cell)的使用总结
- 5二十五项反措——防止机网协调事故
- 堪比阿里插件的Android Studio插件集合(IDE通用)(下)