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
└── temp4 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.zipLength Date Time Name
--------- ---------- ----- ----0 2025-05-17 08:25 folder1/0 2025-05-17 08:22 folder1/main1.c0 2025-05-17 07:51 folder1/folder111/0 2025-05-17 07:51 folder1/folder111/file1.txt0 2025-05-17 08:24 folder2/0 2025-05-17 07:52 folder2/file2_2.txt0 2025-05-17 07:52 folder2/file2_3.txt0 2025-05-17 07:52 folder2/file2_1.txt0 2025-05-17 07:54 root.txt
--------- -------0 9 files
解压
新建 temp 目录后,解压压缩包到 temp 目录
unzip newAdd.zip -d temp
本例的运行结果,
Archive: newAdd.zipcreating: 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.txt3 directories, 6 files