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