案例详解-如何在 Linux 系统中安装和使用 7zip 以及 7zip的脚本编程使用教程(非p7zip,而是官方版本7zip for linux)附deb包下载链接

简介: 本本介绍如何在 Linux 系统中安装和使用 7zip 以及 7zip的脚本编程使用教程(非p7zip,而是官方版本7zip for linux)附deb包下载链接

如何在 Linux 系统中安装和使用 7zip


李俊才(jcLee95) 的个人博客
已入驻阿里云
邮箱 :291148484@163.com
本文地址
- https://developer.aliyun.com/article/
- https://blog.csdn.net/qq_28550263/article/details/124876070

目 录


1. 安装 7zip for Linux

2. 用法

3. 简单案例


7zip 是用于 Windows 上的压缩软件,其压缩能力远高于其他软件,并且开源免费。长期以来,它都没有

1. 安装 7zip for Linux

1.1 通过官网下载可执行文件的方式

官网地址为https://www.7-zip.org/download.html6666666666666.png


1.2 下载笔者做好的 deb 包

1.2.1 CSDN 中下载

(这个版本可以用7zip7zz作为7zip命令,没有7z

由于目前不能使用包管理工具直接安装,为方便读者的安装和使用,笔者已经提前下载好了7zip for linux的可执行文件,并将其制作为 deb 包。无需积分,读者可以在以下地址免费下载使用: https://download.csdn.net/download/qq_28550263/85420534

6666666666666.png


6666666666666.png


1.2.2 笔者的个人站点

其他版本下载(部署在我个人站点http://thispage.tech/sources/7zip/):

(以下版本都可以用7zip7z7zz任一作为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

效果如图:

6666666666666.png

这里圈出来的百分数表示打包的进度,当进度为100%时,打包完成。你将看到该目录下多出一个压缩文件myarchive.7z并且百分数进度变为Everything is Ok。如图

6666666666666.png


任意位置

只需要将路径写成 压缩后文件绝对路径源文件绝对路径 即可。

包含所有子文件夹

如果需要包含所有子文件夹可以使用-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

6666666666666.png


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

如图所示:

6666666666666.png


3.1.4 指定最大分卷大小

使用-v选项可以用于指定分卷的大小。该选项完整格式为-v{Size}[b|k|m|g],也就是说需要链接分卷大小和分卷的单位,如-v100M,表示单卷的容量为 100M。根据需要你可以使用bkmg之一做单位,以及指定其他任意阿拉伯数值。

例如:

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

压缩完成后,你会看到输出的压缩包文件名后缀被自动依据压缩需要递增命名成了001002、… 如图所示:

6666666666666.png


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 压缩文件

效果如图所示:

6666666666666.png

2. 使用原压缩目录解压

通过x子命令可以将压缩包按照原有的目录结构分层次解压,这种方式下如果你不希望改变压缩时的原有目录结构,那解压后将能够将其还原。其使用格式为:

7z x 压缩文件

例如:

6666666666666.png

3.2.2 解压分卷压缩文档

3.2.3 解压加密压缩文档

3.2.3.1 根据提示输入密码

如果你不知道某个压缩文件是否有密码,直接使用 3.2 解压案例 小节中的解压方式也可以进行解压,前提是你需要根据手动输入密码。

例如,解压如下一个加密的压缩文件,但没有指定压缩密码时:

6666666666666.png


显然这种方式在无人值守的自动化脚本任务下是不推荐的,一般是用于手动处理少量压缩文件的场景。

3.2.3.2 直接指定密码

我们当然也可以预先指定一个解压密码用于解压压缩文件,这和使用密码加密时所用的方式是完全一样的,也就是使用以一个-p选项,再将你的密码附在该选项中。例如:

7z x -p123456 '.\Encrypted archive.7z'

其中,压缩文件Encrypted archive.7z的密码为123456.效果如下:

6666666666666.png

3.3 查看压缩文件

你可以使用l子命令来获取压缩文件中的内容。

3.3.1 查看单个普通压缩文件

例如:

6666666666666.png


3.3.2 查看分卷压缩文件

如果一个压缩包是分卷压缩的,查看该压缩包只需查看其第一个分卷。需要注意的是,该压缩包的所有分卷应该同时位于同一目录下。

目录
相关文章
|
1天前
|
Linux 程序员 开发者
源社区的兴起:从“代码隐士”到Linux引领的“全球编程嘉年华”
在编程的古老森林中,曾有“代码隐士”默默耕耘,惧怕智慧外泄。直到“开源”春风拂过,源社区如全球编程嘉年华盛开!开源文化颠覆了“独门秘籍”的传统,像“武林秘籍共享”般在网络上公开,鼓励知识传播与智慧碰撞。程序员组队开发,分享代码,提升科技实力。Linux则从“首席大厨”变身为“总导演”,以强大内核调制出诱人应用,引领潮流并推动技术创新。加入这场没有血腥厮杀,只有知识盛宴的“编程版《饥饿游戏》”吧!与全球开发者共享编程的乐趣与成就感!别忘了带上你的“独门秘籍”,可能下一个改变世界的创意就在其中!
15 6
|
3天前
|
监控 Linux Shell
但凡我早点知道这个Linux批量ping的脚本,也不至于现在还单身!
但凡我早点知道这个Linux批量ping的脚本,也不至于现在还单身!
|
5天前
|
NoSQL Linux 网络安全
Linux系统安装Redis
该博客文章详细介绍了在Linux系统中安装Redis的步骤,包括下载、编译、配置、启动Redis服务以及使用客户端访问Redis数据库的过程。
Linux系统安装Redis
|
5天前
|
监控 Linux Shell
"揭秘!一键掌控Linux服务器健康的秘密武器——超实用系统检查脚本,让你的服务器稳如老狗,告别宕机烦恼!"
【8月更文挑战第14天】服务器宕机或资源耗尽会严重影响业务。为此,你需要一个Linux系统检查脚本来守护服务器健康。它可以自动检测潜在问题如磁盘满载、内存泄漏等,避免服务中断。脚本应包括磁盘空间、内存/CPU使用、系统时间准确性、关键服务状态及系统日志分析等检查项。通过编写并定期运行这样的脚本,可以显著提高服务器的稳定性和可靠性。
17 1
|
16天前
|
监控 Shell Linux
探索Linux操作系统下的Shell编程之魅力
【8月更文挑战第4天】本文旨在通过一系列精心设计的示例和分析,揭示在Linux环境下进行Shell编程的独特之处及其强大功能。我们将从基础语法入手,逐步深入到脚本的编写与执行,最终通过实际代码案例展现Shell编程在日常系统管理和自动化任务中的应用价值。文章不仅适合初学者构建扎实的基础,同时也为有一定经验的开发者提供进阶技巧。
28 11
|
16天前
|
Ubuntu Linux 开发工具
深入探索Linux内核模块编程
【8月更文挑战第4天】在这篇文章中,我们不仅将探讨Linux内核模块的基础知识,还将通过一个实际的例子来展示如何编写一个简单的内核模块。我们将从理论出发,逐步过渡到动手实践,最终实现一个可以在Linux系统上运行的模块。文章的目标是为读者提供足够的信息和知识,以便他们能够自己编写内核模块,从而对操作系统的内部工作原理有更深入的了解。
|
13天前
|
Linux Shell
linux脚本格式要求
脚本格式要求 1.脚本以#!/bin.bash 开头 ./执行或者 sh ab.sh 变量定义 定义变量:变量名=值 输出变量需要加$ 撤销变量 unset 变量名 声明静态变量 readonly变量 不能unset
|
4天前
|
Linux Python
Linux离线安装Python依赖包
本文介绍了在Linux环境下离线安装Python依赖包的方法,包括从Python依赖包检索网站下载所需依赖包的压缩文件,上传到Linux服务器,然后通过解压、编译和安装步骤完成依赖包的安装。
7 0
|
14天前
|
分布式计算 Java Linux
【Deepin 20系统】Linux 系统安装Spark教程及使用
在Deepin 20系统上安装和使用Apache Spark的详细教程,包括安装Java JDK、下载和解压Spark安装包、配置环境变量和Spark配置文件、启动和关闭Spark集群的步骤,以及使用Spark Shell和PySpark进行简单操作的示例。
15 0
|
15天前
|
Linux
【Deepin 系统】Linux系统安装Halcon机器视觉工具
在Deepin Linux系统上安装Halcon机器视觉工具的详细步骤,包括下载安装包、安装、配置环境、复制license文件以及启动Halcon软件。
27 0