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
这样就会将file1
,file2
,dir1
和dir2
压缩到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
这样就会将file1
和file2
压缩到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
这样就会将file1
和file2
压缩到archive.7z
文件中,并分成10MB的卷,如archive.7z.001
,archive.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发行版的安装方法来安装。
评论区