zip / unzip
常見格式
-d dir
:指定解壓縮後的目標目錄-l
:列出 zip 檔案中的內容,但不解壓縮(List)-q
:安靜模式,不顯示解壓縮過程(Quiet)-o
:覆蓋已存在的檔案而不詢問(Overwrite)-n
:不覆蓋已存在的檔案(Never overwrite)-x
:排除某一檔案(eXclude)
檢視內容
unzip -l root.zip # 列出壓縮包中的檔案
解壓
unzip root.zip # 解壓到當前目錄下, 但是不建立目錄
unzip root.zip -d ./root # 解壓到 ./root
unzip -o root.zip -d ./root # 覆蓋已存在的檔案
unzip -n root.zip -d ./root # 不覆蓋已存在的檔案
unzip -x README root.zip # 解壓時排除 README 檔案
tar
常見格式
-c
:建立新的存檔檔案(Create)-x
:從存檔檔案中提取檔案(eXtract)-t
:列出存檔檔案中的內容(lisT)-v
:顯示 tar 命令執行的詳細資訊(Verbose)-f
:指定存檔檔案的名稱(File)-z
:在建立或提取存檔檔案時使用 gzip 壓縮演算法來進行壓縮或解壓縮(gzip)-j
:在建立或提取存檔檔案時使用 bzip2 壓縮演算法來進行壓縮或解壓縮(bzip2)-C
:指定 tar 命令的工作目錄(Change directory)
檢視內容
tar -tvf root.tar # 檢視壓縮包內容
解壓
tar -xvf root.tar # 按照實際壓縮的格式解壓到當前目錄下(f 必須置於 xv 後)
tar -xvf root.tar -C ./root # 解壓到 ./root 下(./root 一定要存在)
# 如果存檔檔案是經過 gzip、bzip2 或 xz 壓縮的,則必須指定相應的壓縮演算法來解壓存檔檔案
tar -xzvf root.tar.gz
tar -xjvf root.tar.bz2
tar -xJvf root.tar.xz
上述解壓操作均為覆蓋模式。
壓縮
tar -cvf root.tar dir1/ dir2/ file... # 將多個檔案/目錄壓縮為 root.tar
tar -cvf root.tar ./* --exclude '*.o' # 除 .o 外的其他檔案壓縮為 root.tar
# 壓縮存檔檔案
tar -czvf root.tar.gz * # 在建立 tar 存檔檔案時使用 gzip 壓縮新建立的存檔檔案
tar -cjvf root.tar.bz2 * # 在建立 tar 存檔檔案時使用 bzip2 壓縮新建立的存檔檔案
tar -cJvf root.tar.xz * # 在建立 tar 存檔檔案時使用 xz 壓縮新建立的存檔檔案
分卷壓縮
# 將當前目錄下的所有文件分卷壓縮, 每個壓縮報的大小不超過 1MB
tar -czvf - ./* | split -b 1m -d - root.tar.gz.
上述命令將使用管道符將壓縮的存檔檔案傳送到
split
命令中,並將其分割成多個 1MB 大小的檔案,每個部分的檔名以root.tar.gz.
開頭,並以數字結尾(如 root.tar.gz.00, root.tar.gz.01)等。
# 合併後解壓
cat root.tar.gz.* > root.tar.gz
tar -xzvf root.tar.gz
參考資料
- Linux系統常用unzip命令詳解_unzip -o-CSDN部落格
- Linux 打包命令 tar 詳解_linux tar-CSDN部落格