Linux系統下文件壓縮與打包命令
常用的壓縮文件拓展名
* .Z
* .zip
* .gz
* .bz2
* .xz
* .tar
* .tar.gz
* .tar.bz2
* .tar.xz
壓縮命令
gzip,zcat/zmore/zless/zgrep
- 描述:替換早期的compress命令提供更好壓縮比,應用最廣的壓縮命令,建立出的壓縮文件為*.gz
gzip [-cdtv#] 文件名
zcat 文件名.gz
- 參數描述:
- -c: 壓縮數據輸出到屏幕,可通過數據流重定向處理
- -d: 解壓縮的參數
- -t: 檢查壓縮文件的一致性,看文件是否有錯誤
- -v: 顯示原文件/壓縮文件壓縮比
- -#: 壓縮等級【1-9】,默認是
6
- 1:最快,壓縮比最差
- ...
- 9:最慢,壓縮比最好
- zcat/zmore/zless可以對應於cat/more/less方式讀取純文本文件被壓縮后的壓縮文件
bzip2, bzcat/bzmore/bzless/bzgrep
- 描述: 替換gzip,后綴是.bz2,用法幾乎與gzip一致。
bzip2 [-cdkzv#] 文件名
bzcat 文件名.gz
- 參數描述:
- -c: 壓縮數據輸出到屏幕,可通過數據流重定向處理
- -d: 解壓縮的參數
- -k: 保留原始文件而不會刪除原始文件
- -z: 壓縮的參數(默認值,可以不加)
- -v: 顯示原文件/壓縮文件壓縮比
- -#: 壓縮等級【1-9】,默認是
6
- 1:最快,壓縮比最差
- 9:最慢,壓縮比最好
具體范例
# 壓縮並將信息顯示
bzip2 -v services*
# 讀出上例文件內容
bzcat services.bz2
# 解壓縮
bzip2 -d services.bz2
# 將上例中解開的services采用最佳壓縮比壓縮,並保留原本文件
bzip2 -9 -c services > services.bz2
此處要注意,-c ... > ...
的用法:將原本要輸出到屏幕的內容轉成文件->具體在bash中看
xz, xzcat/xzmore/xzless/xzgrep
- 描述: 壓縮比更高的軟件,用法與上述兩個基本相同
- 參數描述:
- -c: 壓縮數據輸出到屏幕,可通過數據流重定向處理
- -d: 解壓縮的參數
- -t: 檢查壓縮文件的一致性,看文件是否有錯誤
- -l: 列出壓縮文件的相關信息
- -k: 保留原始文件而不會刪除原始文件
- -#: 壓縮等級【1-9】,默認是
6
- 1:最快,壓縮比最差
- 9:最慢,壓縮比最好
對比一下幾個命令的運行時間
time [gzip|bzip2|xz] -c wget-log > log.[gz|bz2|xz]
打包命令
tar
- 描述: 將多個文件或者目錄包成一個大文件的命令
- 常用參數的描述
- -c [可搭配-v]建立打包文件
- -t [可搭配-v] 查看內容
- -x [可搭配-v] 解壓
- -v 在處理的文件名顯示出來
- -z 通過gzip的支持進行壓縮/解壓縮,最好文件后綴是.tar.gz
- -j 通過bzip2的支持進行壓縮/解壓縮,最好文件名后綴是.tar.bz2
- -J 通過xz ~~, 文件后綴.tar.xz
- -f 與即刻要處理的文件名放在一起【單獨寫可能不會忘記】
- -C 在特定目錄解壓縮
- -p [可搭配-c]保留備份數據的原本屬性與權限,常用於備份
- -P 保留絕對路徑,即允許備份數據中含有根目錄存在
- --exclude=FILE 壓縮過程中,不將FILE打包
- 要注意:
-z
,-j
,-J
不能同用!
- 常用打包搭配
- 打包與壓縮:
tar [-z|-j|-J] [cv] [-f 待建立的新文件名] filename
- 查看文件名:
tar [-z|-j|-J] [tv] [-f 既有的tar文件名]
- 解壓縮:
tar [-z|-j|-J] [xv] [-f 既有的tar文件名] [-C目錄]
- 打包與壓縮: