1. 程式人生 > >shell命令 - zip/unzip

shell命令 - zip/unzip

用途

壓縮/解壓縮

語法及描述

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