zip
命令用于压缩文件,压缩后的文件后缀名为 .zip
。
对应的解压命令是 unzip
。
测试用的目录结构如下,
user@zn:~/test$ tree
.
├── folder1
│ ├── folder111
│ │ └── file1.txt
│ └── main1.c
├── folder2
│ ├── file2_1.txt
│ ├── file2_2.txt
│ └── file2_3.txt
├── root.txt
└── temp
4 directories, 6 files
zip压缩
压缩文件和目录
zip -r newAdd.zip folder1 folder2 root.txt
把 folder1 folder2 root.txt 压缩成 newAdd.zip 。
folder1 和 folder2 是目录,加 -r
参数会递归压缩该目录及其子目录中的所有文件,并保留目录结构。
这个命令满足大部分使用场景。
压缩文件和目录,排除特定文件
zip -r noc.zip folder1 folder2 root.txt -x “*.c”
-x
用于排除特定文件。
把 folder1 folder2 root.txt 压缩成 noc.zip ,排除后缀是 .c 的文件 。
unzip解压
查看压缩包内容
只查看,不解压
unzip -l newAdd.zip
本例的运行结果
Archive: newAdd.zip
Length Date Time Name
--------- ---------- ----- ----
0 2025-05-17 08:25 folder1/
0 2025-05-17 08:22 folder1/main1.c
0 2025-05-17 07:51 folder1/folder111/
0 2025-05-17 07:51 folder1/folder111/file1.txt
0 2025-05-17 08:24 folder2/
0 2025-05-17 07:52 folder2/file2_2.txt
0 2025-05-17 07:52 folder2/file2_3.txt
0 2025-05-17 07:52 folder2/file2_1.txt
0 2025-05-17 07:54 root.txt
--------- -------
0 9 files
解压
新建 temp 目录后,解压压缩包到 temp 目录
unzip newAdd.zip -d temp
本例的运行结果,
Archive: newAdd.zip
creating: temp/folder1/
extracting: temp/folder1/main1.c
creating: temp/folder1/folder111/
extracting: temp/folder1/folder111/file1.txt
creating: temp/folder2/
extracting: temp/folder2/file2_2.txt
extracting: temp/folder2/file2_3.txt
extracting: temp/folder2/file2_1.txt
extracting: temp/root.txt
查看 temp 目录结构,
user@zn:~/test$ tree temp/
temp/
├── folder1
│ ├── folder111
│ │ └── file1.txt
│ └── main1.c
├── folder2
│ ├── file2_1.txt
│ ├── file2_2.txt
│ └── file2_3.txt
└── root.txt
3 directories, 6 files