shell命令 - zip/unzip
阿新 • • 發佈:2018-11-03
用途
壓縮/解壓縮
語法及描述
zip
zip [-dDqrS] [-b path] [zipfile [file ...]]
- -d : 從 壓縮檔案內刪除指定的檔案
- -D : 壓 縮檔案內不建立目錄名稱
- -q : 不顯 示指令執行過程
- -r : 遞 歸處理,將指定目錄下的所有檔案和子目錄一併處理
- -S : 包 含系統和隱藏檔案
- -<壓縮效率> 壓 縮效率是一個介於1-9的 數值
- -b : 建立zip檔案臨時目錄
unzip
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] [-d exdir]
- -j : 目錄結構不重新建立
- \file[.zip]:待解壓的包
- [file(s) …]:要解壓的檔案,預設解壓全部檔案
- \ -d : 解壓的輸出目錄,預設當前目錄
舉例
壓縮目錄
~/Downloads/test1$ tree
.
└── test
├── a
├── b
└── dir
└── c
2 directories, 3 files
~/Downloads/test1$
~/Downloads/test1$ zip -r test test
adding: test/ (stored 0%)
adding: test/a (stored 0%)
adding: test/dir/ (stored 0%)
adding: test/dir/c (stored 0%)
adding: test/b (stored 0%)
~/Downloads/test1$ ls
test test.zip
- 壓縮檔案
~/Downloads/test0$ ls
a b
~/Downloads/test0$ zip ab a b
adding: a (stored 0%)
adding: b (stored 0%)
~/Downloads/test0$ ls
a ab.zip b
- 解壓檔案
~/Downloads/test1$ unzip test.zip -d out
Archive: test.zip
creating: out/test/
extracting: out/test/a
creating: out/test/dir/
extracting: out/test/dir/c
extracting: out/test/b
~/Downloads/test1$
~/Downloads/test1$ cd out/
~/Downloads/test1/out$ ls
test
~/Downloads/test1/out$ tree
.
└── test
├── a
├── b
└── dir
└── c
2 directories, 3 files
- 解壓某些檔案
~/Downloads/test1$ unzip test.zip "test/dir/c" -d out
Archive: test.zip
extracting: out/test/dir/c
~/Downloads/test1$ cd out/
~/Downloads/test1/out$ tree
.
└── test
└── dir
└── c
2 directories, 1 file
- 解壓某些檔案,不重新建立路徑
~/Downloads/test1$ unzip -j test.zip "test/dir/c" -d out
Archive: test.zip
extracting: out/c
~/Downloads/test1$ cd out/
~/Downloads/test1/out$ tree
.
└── c
0 directories, 1 file
- 解壓某些檔案到當前目錄
~/Downloads/test1$ unzip -j test.zip "test/dir/c"
Archive: test.zip
extracting: c
~/Downloads/test1$
3 directories, 5 files
~/Downloads/test1$ ls
c out test test.zip