侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux 7z命令教程:如何压缩和解压缩文件(附实例详解和注意事项)

Linux 7z命令介绍

7z命令是一个用于压缩和解压缩文件的命令,它是7-Zip程序的一部分。7-Zip是一个开源的文件归档程序,它支持多种压缩格式,如7z, ZIP, GZIP, BZIP2, TAR等。7z命令可以用来创建和管理7z格式的压缩文件,也可以用来处理其他格式的压缩文件。7z命令的优点是它可以提供高压缩比,节省磁盘空间和网络带宽,同时也支持加密和分卷功能。

Linux 7z命令适用的Linux版本

7z命令可以在大多数Linux发行版中使用,但是需要先安装7-Zip程序。不同的Linux发行版可能有不同的安装方法,下面列出了一些常见的Linux发行版的安装命令:

  • Ubuntu/Debian: sudo apt-get install p7zip-full
  • Fedora/CentOS: sudo yum install p7zip
  • Arch Linux: sudo pacman -S p7zip

如果你的Linux发行版没有提供7-Zip程序的包,你也可以从官网下载源代码,然后编译和安装。

如果你想在不同的Linux发行版中切换7z命令的使用方法,你可以使用选项卡的形式展示,如下:

[linux@bashcommandnotfound.cn ~]$ # Ubuntu/Debian
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install p7zip-full
[linux@bashcommandnotfound.cn ~]$ 7z a archive.7z file1 file2 file3
[linux@bashcommandnotfound.cn ~]$ 7z l archive.7z
[linux@bashcommandnotfound.cn ~]$ 7z x archive.7z
[linux@bashcommandnotfound.cn ~]$ # Fedora/CentOS
[linux@bashcommandnotfound.cn ~]$ sudo yum install p7zip
[linux@bashcommandnotfound.cn ~]$ 7za a archive.7z file1 file2 file3
[linux@bashcommandnotfound.cn ~]$ 7za l archive.7z
[linux@bashcommandnotfound.cn ~]$ 7za x archive.7z
[linux@bashcommandnotfound.cn ~]$ # Arch Linux
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S p7zip
[linux@bashcommandnotfound.cn ~]$ 7z a archive.7z file1 file2 file3
[linux@bashcommandnotfound.cn ~]$ 7z l archive.7z
[linux@bashcommandnotfound.cn ~]$ 7z x archive.7z

Linux 7z命令的基本语法

7z命令的基本语法格式如下:

7z <command> [<switches>...] <archive_name> [<file_names>...]

其中,<command>是指定7z命令要执行的操作,如a表示添加文件到压缩文件,l表示列出压缩文件的内容,x表示解压缩文件等。<switches>是指定7z命令的选项,如-p表示设置密码,-v表示分卷大小等。<archive_name>是指定压缩文件的名称,如archive.7z<file_names>是指定要处理的文件或目录的名称,如file1 file2 file3

Linux 7z命令的常用选项或参数说明

7z命令有很多选项或参数,可以用来控制压缩和解压缩的过程。下面列出了一些常用的选项或参数,如果想查看更多的选项或参数,可以使用7z --help命令查看帮助信息。

选项或参数说明
-aot保留文件的访问时间
-bd在标准输出中不显示进度信息
-l列出压缩文件的内容
-m设置压缩方法和参数
-o指定输出目录
-p设置密码
-r递归处理子目录
-sfx创建自解压缩文件
-t指定压缩文件的类型
-u更新压缩文件
-v分卷大小
-y对所有询问自动回答是

Linux 7z命令的常见技巧或高级技巧

如何压缩多个文件或目录

如果你想压缩多个文件或目录,你可以在7z命令后面列出所有要压缩的文件或目录的名称,如:

[linux@bashcommandnotfound.cn ~]$ 7z a archive.7z file1 file2 dir1 dir2

这样就会将file1file2dir1dir2压缩到archive.7z文件中。

如何压缩整个目录

如果你想压缩整个目录,你可以在7z命令后面加上*通配符,如:

[linux@bashcommandnotfound.cn ~]$ 7z a archive.7z dir1/*

这样就会将dir1目录下的所有文件和子目录压缩到archive.7z文件中。

如何压缩文件并设置密码

如果你想压缩文件并设置密码,你可以在7z命令后面加上-p选项,如:

[linux@bashcommandnotfound.cn ~]$ 7z a -p archive.7z file1 file2

这样就会将file1file2压缩到archive.7z文件中,并设置密码。如果你不想在命令行中输入密码,你可以省略-p选项后面的密码,如:

[linux@bashcommandnotfound.cn ~]$ 7z a -p archive.7z file1 file2
Enter password (will not be echoed):
Verify password (will not be echoed):

这样就会提示你输入和验证密码。

如何压缩文件并分卷

如果你想压缩文件并分卷,你可以在7z命令后面加上-v选项,如:

[linux@bashcommandnotfound.cn ~]$ 7z a -v10m archive.7z file1 file2

这样就会将file1file2压缩到archive.7z文件中,并分成10MB的卷,如archive.7z.001archive.7z.002等。

如何解压缩文件

如果你想解压缩文件,你可以使用x命令,如:

[linux@bashcommandnotfound.cn ~]$ 7z x archive.7z

这样就会将archive.7z文件解压缩到当前目录中。如果你想指定输出目录,你可以使用-o选项,如:

[linux@bashcommandnotfound.cn ~]$ 7z x -ooutput archive.7z

这样就会将archive.7z文件解压缩到output目录中。

如何解压缩分卷文件

如果你想解压缩分卷文件,你只需要指定第一个卷的名称,如:

[linux@bashcommandnotfound.cn ~]$ 7z x archive.7z.001

这样,7-Zip会自动找到其他的分卷文件,并将它们一起解压缩。你不需要选择所有的分卷文件,只需要选择第一个就可以了。

如果你使用的是其他的压缩软件,如WinRAR或360压缩,你也可以用类似的方法解压缩分卷文件。只要右键点击第一个分卷文件,选择解压到当前文件夹或解压到指定文件夹,就可以完成解压缩的操作。

如何查看压缩文件的信息

如果你想查看压缩文件的信息,如压缩比,文件列表,文件大小等,你可以使用l命令,如:

[linux@bashcommandnotfound.cn ~]$ 7z l archive.7z

7-Zip [64] 16.02 : Copyright (c) 1999-2016
p7zip Version 16.02 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (806E9),ASM,AES-NI)

Scanning the drive for archives:
1 file, 1048576 bytes (1024 KiB)

Listing archive: archive.7z

--
Path = archive.7z
Type = 7z
Physical Size = 1048576
Headers Size = 150
Method = LZMA2:24
Solid = -
Blocks = 1

   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2023-12-12 15:35:41 ....A       524288       524288  file1
2023-12-12 15:35:41 ....A       524288       524288  file2
------------------- ----- ------------ ------------  ------------------------
2023-12-12 15:35:41            1048576      1048576  2 files

这样就会显示archive.7z文件的信息,如压缩方法,文件列表,文件大小等。

如何测试压缩文件的完整性

如果你想测试压缩文件的完整性,检查是否有损坏或错误,你可以使用t命令,如:

[linux@bashcommandnotfound.cn ~]$ 7z t archive.7z

7-Zip [64] 16.02 : Copyright (c) 1999-2016
p7zip Version 16.02 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (806E9),ASM,AES-NI)

Scanning the drive for archives:
1 file, 1048576 bytes (1024 KiB)

Testing archive: archive.7z
--
Path = archive.7z
Type = 7z
Physical Size = 1048576
Headers Size = 150
Method = LZMA2:24
Solid = -
Blocks = 1

Everything is Ok

Files: 2
Size:       1048576
Compressed: 1048576

这样就会测试archive.7z文件的完整性,如果没有错误,会显示Everything is Ok

如何删除压缩文件中的文件

如果你想删除压缩文件中的文件,你可以使用d命令,如:

[linux@bashcommandnotfound.cn ~]$ 7z d archive.7z file1

7-Zip [64] 16.02 : Copyright (c) 1999-2016
p7zip Version 16.02 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (806E9),ASM,AES-NI)

Scanning the drive for archives:
1 file, 1048576 bytes (1024 KiB)

Updating archive: archive.7z

Items to compress: 1


Files read from disk: 1
Archive size: 524438 bytes (512 KiB)
Everything is Ok

这样就会删除archive.7z文件中的file1文件,更新压缩文件。

如何重命名压缩文件中的文件

如果你想重命名压缩文件中的文件,你可以使用rn命令,如:

[linux@bashcommandnotfound.cn ~]$ 7z rn archive.7z file2 newfile

7-Zip [64] 16.02 : Copyright (c) 1999-2016
p7zip Version 16.02 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (806E9),ASM,AES-NI)

Scanning the drive for archives:
1 file, 1048576 bytes (1024 KiB)

Renaming archive: archive.7z

Items to compress: 1


Files read from disk: 1
Archive size: 524438 bytes (512 KiB)
Everything is Ok

这样就会重命名archive.7z文件中的file2文件为newfile,更新压缩文件。

如何添加注释到压缩文件

如果你想添加注释到压缩文件,你可以使用-mhc选项,如:

[linux@bashcommandnotfound.cn ~]$ echo "This is a comment" > comment.txt
[linux@bashcommandnotfound.cn ~]$ 7z a -mhc archive.7z comment.txt

7-Zip [64] 16.02 : Copyright (c) 1999-2016
p7zip Version 16.02 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (806E9),ASM,AES-NI)

Scanning the drive for archives:
1 file, 1048576 bytes (1024 KiB)

Updating archive: archive.7z

Items to compress: 1


Files read from disk: 1
Archive size: 524438 bytes (512 KiB)
Everything is Ok

这样就会将comment.txt文件的内容作为注释添加到archive.7z文件中,更新压缩文件。如果你想查看压缩文件的注释,你可以使用-slt选项,如:

[linux@bashcommandnotfound.cn ~]$ 7z l -slt archive.7z

7-Zip [64] 16.02 : Copyright (c) 1999-2016
p7zip Version 16.02 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (806E9),ASM,AES-NI)

Scanning the drive for archives:
1 file, 1048576 bytes (1024 KiB)

Listing archive: archive.7z

--
Path = archive.7z
Type = 7z
Physical Size = 1048576
Headers Size = 150
Method = LZMA2:24
Solid = -
Blocks = 1
Comment = This is a comment
...

这样就会显示archive.7z文件的注释,以及其他信息。

Linux 7z命令的注意事项

在使用Linux 7z命令时,有一些注意事项,如下:

  • 如果你想解压缩分卷文件,你需要确保所有的卷都在同一个目录中,否则会出错。
  • 如果你想压缩或解压缩带有空格的文件或目录,你需要用引号括起来,如"file with space"
  • 如果你想压缩或解压缩带有特殊字符的文件或目录,你需要用反斜杠转义,如\*
  • 如果你遇到bash: 7z: command not found的错误,说明你没有安装7-Zip程序,你需要根据你的Linux发行版的安装方法来安装。
0

评论区