案例详解-如何在 Linux 系统中安装和使用 7zip 以及 7zip的脚本编程使用教程(非p7zip,而是官方版本7zip for linux)附deb包下载链接
如何在 Linux 系统中安装和使用 7zip
李俊才(jcLee95) 的个人博客
邮箱 :291148484@163.com
CSDN 主页:https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343
本文地址:https://blog.csdn.net/qq_28550263/article/details/124876070
目 录
1. 安装 7zip for Linux
- 1.1 通过官网下载可执行文件的方式
- 1.2 下载笔者做好的 deb 包
- 1.2.1 CSDN 中下载
- 1.2.2 笔者的个人站点(其他各种Linux版本deb包)
2. 用法
- 2.1 命令
- 2.2 开关项
3. 简单案例
- 3.1 压缩案例
- 3.1.1 将指定目录压缩到指定位置
- 当前位置
- 任意位置
- 包含所有子文件夹
- 添加多个文件到压缩包
- 3.1.2 指定压缩格式
- 3.1.3 指定压缩级别和CUP线程数
- 3.1.4 指定最大分卷大小
- 3.1.5 压缩后删除源文件
- 3.1.6 加密压缩
- 3.1.7 覆盖压缩
- 3.1.8 禁用固态模式
- 3.1.1 将指定目录压缩到指定位置
- 3.2 解压案例
- 3.2.1 基本解压
- 1. 不使用目录名解压
- 2. 使用原压缩目录解压
- 3.2.2 加压分卷压缩文档
- 3.2.3 加压加密压缩文档
- 3.2.3.1 根据提示输入密码
- 3.2.3.2 直接指定密码
- 3.2.1 基本解压
- 3.3 查看压缩文件
- 3.3.1 查看单个普通压缩文件
- 3.3.2 查看分卷压缩文件
7zip 是用于 Windows 上的压缩软件,其压缩能力远高于其他软件,并且开源免费。长期以来,它都没有
1. 安装 7zip for Linux
1.1 通过官网下载可执行文件的方式
官网地址为:https://www.7-zip.org/download.html
1.2 下载笔者做好的 deb 包
1.2.1 CSDN 中下载
(这个版本可以用7zip
、7zz
作为7zip命令,没有7z
)
由于目前不能使用包管理工具直接安装,为方便读者的安装和使用,笔者已经提前下载好了7zip for linux的可执行文件,并将其制作为 deb 包。无需积分,读者可以在以下地址免费下载使用: https://download.csdn.net/download/qq_28550263/85420534
1.2.2 笔者的个人站点
其他版本下载(部署在我个人站点http://thispage.tech/sources/7zip/):
(以下版本都可以用7zip
、7z
、7zz
任一作为7zip命令)
文件名 | 描述 | 地址 |
---|---|---|
7z-21.07-linux-arm.deb | 7zip for linux arm |
https://thispage.tech/sources/7zip/7z-21.07-linux-arm.deb
|
7z-21.07-linux-arm64.deb | 7zip for linux arm 64 |
http://thispage.tech/sources/7zip/7z-21.07-linux-arm64.deb
|
7z-21.07-linux-x64.deb | 7zip for linux x64 |
http://thispage.tech/sources/7zip/7z-21.07-linux-x64.deb
|
7z-21.07-linux-x86.deb | 7zip for linux x86 |
http://thispage.tech/sources/7zip/7z-21.07-linux-x86.deb
|
以上包在有外网的情况下可以使用如下方法安装(以7z-21.07-linux-x64.deb
为例):
wget -q http://thispage.tech/sources/7zip/7z-21.07-linux-x64.deb
dpkg -i 7z-21.07-linux-x64.deb
rm 7z-21.07-linux-x64.deb
2. 用法
格式
7zz <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]
其中,如果使用的是方法二下载 deb
包,也可以将7zz
替换为7zip
。
2.1 命令
命令 | 描述 |
---|---|
a
|
将文件添加到存档 |
b
|
基准 |
d
|
从存档中删除文件 |
e
|
从存档中提取文件(不使用目录名) |
h
|
计算文件的哈希值 |
i
|
显示有关支持的格式的信息 |
l
|
列出存档的内容 |
rn
|
重命名存档中的文件 |
t
|
测试存档的完整性 |
u
|
更新要存档的文件 |
x
|
提取具有完整路径的文件 |
2.2 开关项
命令 | 描述 |
---|---|
--
|
停止开关和 @listfile 解析
|
-ai[r[-|0]]{@listfile|!wildcard}
|
包括档案 |
-ax[r[-|0]]{@listfile|!wildcard}
|
排除存档 |
-ao{a|s|t|u}
|
设置覆盖模式 |
-an
|
禁用存档名称字段 |
-bb[0-3]
|
设置输出日志级别 |
-bd
|
禁用进度指示器 |
-bs{o|e|p}{0|1|2}
|
为输出/错误/进度线设置输出流 |
-bt
|
显示执行时间统计 |
-i[r[-|0]]{@listfile|!wildcard}
|
包括文件名 |
-m{Parameters}
|
设置压缩方法 |
-mmt[N]
|
设置CPU线程的数量 |
-mx[N]
|
设置压缩级别: -mx1 (fastest) … -mx9 (ultra) |
-o{Directory}
|
设置输出目录 |
-p{Password}
|
设置密码 |
-r[-|0]
|
递归子目录进行名称搜索 |
-sa{a|\e|s}
|
设置存档名称模式 |
-scc{UTF-8|WIN|DOS}
|
为控制台输入/输出设置字符集 |
-scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}}
|
为列表文件设置字符集 |
-scrc[CRC32|CRC64|SHA1|SHA256|*]
|
为x、e、h命令设置哈希函数 |
-sdel
|
压缩后删除文件 |
-seml[.]
|
通过电子邮件发送存档 |
-sfx[{name}]
|
创建SFX档案 |
-si[{name}]
|
从标准输入(stdin)中读取数据 |
-slp
|
设置大页面模式 |
-slt
|
显示l(列表)命令的技术信息 |
-snh
|
将硬链接存储为链接 |
-snl
|
将符号链接存储为链接 |
-sni
|
存储NT安全信息 |
-sns[-]
|
存储NTFS备用流 |
-so
|
将数据写入标准输出 |
-spd
|
禁用文件名的通配符匹配 |
-spe
|
消除提取命令的根文件夹的重复 |
-spf
|
使用完全限定的文件路径 |
-ssc[-]
|
设置区分大小写模式 |
-sse
|
如果无法打开某些输入文件,停止创建归档文件 |
-ssp
|
存档时不要更改源文件的上次访问时间 |
-ssw
|
压缩共享文件 |
-stl
|
从最近修改的文件设置存档时间戳 |
-stm{HexMask}
|
设置CPU线程相似性掩码(十六进制数) |
-stx{Type}
|
排除存档类型 |
-t{Type}
|
设置存档类型 |
-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]
|
更新选项 |
-v{Size}[b|k|m|g]
|
创建卷 |
-w[{path}]
|
分配工作目录。空路径表示临时目录 |
-x[r[-|0]]{@listfile|!wildcard}
|
排除文件名 |
-y
|
假定所有 queries 都为 Yes |
3. 简单案例
3.1 压缩案例
3.1.1 将指定目录压缩到指定位置
当前位置
例如目录下有一个名字为myfiles
的文件夹,将它压缩为名为myarchhive.7z
的压缩文件,所有参数军用默认参数,只需要执行一下命令:
7zip a myarchive.7z myfiles
效果如图:
这里圈出来的百分数表示打包的进度,当进度为100%
时,打包完成。你将看到该目录下多出一个压缩文件myarchive.7z
并且百分数进度变为Everything is Ok
。如图
任意位置
只需要将路径写成 压缩后文件绝对路径 和 源文件绝对路径 即可。
包含所有子文件夹
如果需要包含所有子文件夹可以使用-r
开关项,例如:
7zip a -r myarchive.7z myfiles
添加多个文件到压缩包
只需要将需要添加的文件以列表的形式一一列出到后面的被压缩文件表位置即可。
7z a xxx.7z 文件路径1 文件路径2 ...
例如:
7z a sysimages.7z .\cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f.iso .\ubuntu-22.04-desktop-amd64.iso
3.1.2 指定压缩格式
使用-t
选项可以指定压缩类型。可以参考下表指定常见的类型
选项 | 格式 | 后缀 |
---|---|---|
-t7z
|
7z格式(默认) |
.7z
|
-tgzip
|
gzip格式 |
.gz
|
-tzip
|
zip格式 |
.zip
|
-tbzip2
|
bzip2格式 |
.bzip2
|
-ttar
|
tar格式 |
.tar
|
-tiso
|
iso格式 |
.iso
|
-tudf
|
udf格式 |
.udf
|
例如:压缩为zip
格式的压缩文件
7zip a -tzip myarchive.zip myfiles
3.1.3 指定压缩级别和CUP线程数
压缩级别
使用-mx[N]
选项可以用于指定压缩级别,例如使用-mx1
。压缩级别可以设置为-mx1
(压缩速度最快) 到 -mx9
(压缩率最大,即极限压缩)
例如:
7z a -mx9 sysimages.7z .\cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f.iso .\ubuntu-22.04-desktop-amd64.iso
CPU线程
有时候,我们选择使用了较高的压缩级别而电脑资源又足够开启更多的线程用于执行我们的压缩任务,或者我们希望手动减少压缩程序所使用的线程,这时可以 使用-mmt[N]
选项。这个选项可以在压缩和解压时使用。
例如,你可以同时指定压缩率级别和使用的线程数:
7z a -mmt10 -mx1 sysimages.7z .\cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f.iso .\ubuntu-22.04-desktop-amd64.iso
如图所示:
3.1.4 指定最大分卷大小
使用-v
选项可以用于指定分卷的大小。该选项完整格式为-v{Size}[b|k|m|g]
,也就是说需要链接分卷大小和分卷的单位,如-v100M
,表示单卷的容量为 100M。根据需要你可以使用b
、k
、m
、g
之一做单位,以及指定其他任意阿拉伯数值。
例如:
7z a -v100M sysimagess.7z .\cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f.iso .\ubuntu-22.04-desktop-amd64.iso
压缩完成后,你会看到输出的压缩包文件名后缀被自动依据压缩需要递增命名成了001
、002
、… 如图所示:
3.1.5 压缩后删除源文件
如果需要,你可以选择在压缩完成后将被压缩的文件/目录(称源文件)删除掉,只需在使用开关项-sdel
,例如:
7zip -sdel myarchive.7z myfiles
这样,一旦7zip压缩输出myarchive.7z
文件后,会立刻将原来的整个myfiles
目录(或者文件)删除掉。
提示:
如使用删除,请务必确保被删除的源文件再无作用或者已经备份。
3.1.6 加密压缩
使用-p
命令用于指定密码。密码应该紧跟-p
命令,不需要加空格。比如指定压缩文件的密码为 123456 :
7zip a -p123456 myarchive.7z myfiles
则该目录下生成的压缩文件myarchive.7z
在解压时需要使用密码123456
才可以正常完成解压。
3.1.7 覆盖压缩
覆盖压缩指的是目标文件夹中同名压缩文件已经存在,新输出的压缩文件将覆盖旧有的呀u送文件。使用-ao
开关项可以指定覆盖压缩的模式。该模式下有四个具体的选项值:
选项值 | 描述 | 提醒 |
---|---|---|
a
|
覆盖所有目标文件 | 有覆盖风险,应注意被覆盖的文件是否需要提前备份 |
s
|
跳过现有文件而不覆盖 | |
t
|
为避免名称冲突,提取的新文件将在其名称后附加一个数字 | |
u
|
重命名现有文件。这不会重命名新文件,只会重命名已经存在的旧文件。 |
例如:覆盖压缩
7zip a -aoa myarchive.7z myfiles
这将替换掉该目录下原有的名为myarchive.7z
的文件。
例如:不覆盖同名文档压缩
7zip a -aos myarchive.7z myfiles
即使文件同名,也不会将其覆盖。不过这仍然将执行压缩,因此为了避免时间浪费,应该最好先在你的程序中确定目标文件夹下是否已经存在与指定输出文件名同名文件。
例如:添加数字压缩
3.1.8 禁用固态模式
3.2 解压案例
3.2.1 基本解压
1. 不使用目录名解压
通过e
子命令将不使用压缩中的目录名解压指定的文件,在这种解压模式下,所有的目录和文件将同时被解压到当前目录下。其使用格式为:
7z e 压缩文件
效果如图所示:
2. 使用原压缩目录解压
通过x
子命令可以将压缩包按照原有的目录结构分层次解压,这种方式下如果你不希望改变压缩时的原有目录结构,那解压后将能够将其还原。其使用格式为:
7z x 压缩文件
例如:
3.2.2 解压分卷压缩文档
3.2.3 解压加密压缩文档
3.2.3.1 根据提示输入密码
如果你不知道某个压缩文件是否有密码,直接使用 3.2 解压案例 小节中的解压方式也可以进行解压,前提是你需要根据手动输入密码。
例如,解压如下一个加密的压缩文件,但没有指定压缩密码时:
显然这种方式在无人值守的自动化脚本任务下是不推荐的,一般是用于手动处理少量压缩文件的场景。
3.2.3.2 直接指定密码
我们当然也可以预先指定一个解压密码用于解压压缩文件,这和使用密码加密时所用的方式是完全一样的,也就是使用以一个-p
选项,再将你的密码附在该选项中。例如:
7z x -p123456 '.\Encrypted archive.7z'
其中,压缩文件Encrypted archive.7z
的密码为123456
.效果如下:
3.3 查看压缩文件
你可以使用l
子命令来获取压缩文件中的内容。
3.3.1 查看单个普通压缩文件
例如:
3.3.2 查看分卷压缩文件
如果一个压缩包是分卷压缩的,查看该压缩包只需查看其第一个分卷。需要注意的是,该压缩包的所有分卷应该同时位于同一目录下。例如:
案例详解-如何在 Linux 系统中安装和使用 7zip 以及 7zip的脚本编程使用教程(非p7zip,而是官方版本7zip for linux)附deb包下载链接相关推荐
- centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法
Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...
- linux系统怎么安装office软件,如何在Linux系统中安装OpenOffice
Linux系统比如说Ubuntu或Linux Mint中是主要的办公软件,有些版本的系统中集成了这款软件,但是有些系统没有.所以下面就来给大家介绍一下,如何在Linux系统中安装OpenOffice. ...
- android 最新sdk版本,详解如何在Android studio中更新sdk版本和build-tools版本
一.首先看下Android开发用到的sdk目录: build-tools 保存着一些Android平台相关通用工具,比如adb.和aapt.aidl.dx等文件. aapt即Android Asset ...
- 如何在linux系统中安装虚拟机?
在初学linux系统时,实验中使用虚拟机可以避免操作不当误删文件时,快速恢复. 在企业中,使用虚拟机可以降低占用空间并能节省资源. 下面我们将介绍如何在linux系统中安装虚拟机, 1.图形界面安装虚 ...
- 如何在Linux系统中安装DBeaver通用数据库工具
DBeaver是一个开源.功能齐全.跨平台的通用数据库管理工具和SQL客户端,可在Linux操作系统.Windows和macOS 系统上运行. DBeaver支持80多个数据库管理系统,包括Postg ...
- 在 Linux 系统中安装Load Generator ,并在windows 调用
在 Linux 系统中安装Load Generator ,并在windows 调用 由于公司需要测试系统的最大用户承受能力,所以需要学习使用loadrunner.在安装的时候碰到了不少问题,所以写下此 ...
- linux系统中安装java
linux系统中安装java 文章目录 linux系统中安装java 视频 检查是否安装jdk 下载jdk的tar.gz版本 创建jdk文件夹 上传到服务器 解压到 /usr/local/java/ ...
- 在linux系统中安装VSCode(Visual Studio Code)
在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网 ...
- vs code linux 权限,在linux系统中安装VSCode(Visual Studio Code)
在linux系统中安装VSCode(Visual Studio Code)linux 1.从官网下载压缩包(话说下载下来解压就直接能够运行了咧,都不须要make) 我是64位的:app wget ht ...
最新文章
- linux进程间通信:system V 信号量和共享内存实现进程间同步
- 数字图像处理——第三章 空间域图像增强(空间滤波)
- Oracle Sequence
- 世界 Web 2.0 网站评奖揭晓
- python的读音-python怎么读?python的含义和读音!
- 今天加入了OSChina,准备将我的BLOG搬到这里。
- python绘制好几个子图_求助,python使用matplotlib画子图颜色,修改多个颜色报错...
- 《统计学习理论的本质》
- numpy.median()
- NB-IOT经典案例
- android 裁剪屏幕中特定区域内的内容
- php根据日期获取到时星期几
- 基于React全家桶开发「网易云音乐PC」项目实战(三)
- Cardboard的学习(二)Cardboard的下载与导入
- Office 365平台及其价值主张
- [附源码]JAVA+ssm计算机毕业设计餐厅点餐订餐系统(程序+Lw)
- 客户案例 | 高等教育出版社
- ASO排名优化、投放思路分析总结,aso投放策略
- JVM类加载过程,JDK和JER区别
- source insight 4 统一设置字体大小