十八、
壓縮打包
linux
下的壓縮命令有
tar
、
gzip
、
gunzip
、
bzip2
、
bunzip2
、
compress
、
uncompress
、
zip
、
unzip
、
rar
、
unrar
等等
壓縮后的擴展名有
.tar
、
.gz
、
.tar.gz
、
. tgz
、
.bz2
、
.tar.bz2
、
.Z
、
.tar.Z
、
.zip
、
.rar 10
種。
對應關系如下:
- *.tar 用 tar –xvf 解壓
- *.gz 用 gzip -d 或者 gunzip 解壓
- *.tar.gz 和*.tgz 用 tar –xzf 解壓
- *.bz2 用 bzip2 -d 或者用 bunzip2 解壓
- *.tar.bz2 用 tar –xjf 解壓
- *.Z 用 uncompress 解壓
- *.tar.Z 用 tar –xZf 解壓
- *.rar 用 unrar e 解壓
- *.zip 用 unzip 解壓
在介紹壓縮文件之前呢,首先要弄清兩個概念:打包和壓縮。
- 打包是指將一大堆文件或目錄什么的變成一個總的文件
- 壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。
為什么要區分這兩個概念呢
?
其實這源於
Linux
中的很多壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你就得
先借助其它的工具將這一大堆文件先打成一個包,然后再就原來的壓縮程序進行壓縮。
Gzip/zcat
Bzip2/bzcat
Tar
Linux
下最常用的打包程序就是
tar
了,使用
tar
程序打出來的包我們常稱為
tar
包,
tar
包文件的命令通
常都是以
.tar
結尾的。
生成
tar
包后,就可以用其它的程序來進行壓縮了,
tar
命令的選項有很多
(
用
man tar
可以查看到
)
,但常用的就那么幾個選項,下面來舉例說明一下:
# 將所有.jpg 的文件打成一個名為 all.tar 的包 tar -cf all.tar *.jpg # -c 是表示產生新的包,-f 指定包的文件名。 # 將所有.gif 的文件增加到 all.tar 的包里面去 tar -rf all.tar *.gif # -r 是表示增加文件的意思。 # 更新原來 tar 包 all.tar 中 logo.gif 文件 tar -uf all.tar logo.gif # -u 是表示更新文件的意思。 # 列出 all.tar 包中所有文件 tar -tf all.tar # -t 是列出文件的意思 # 解出 all.tar 包中所有文件 tar -xf all.tar # -t 是解開的意思 1) tar 調用 gzip gzip 是 GNU 組織開發的一個壓縮程序,.gz 結尾的文件就是 gzip 壓縮的結果。與 gzip 相對的解壓程序是 gunzip。tar 中使用-z 這個參數來調用 gzip。下面來舉例說明一下: # tar -czf all.tar.gz *.jpg 這條命令是將所有.jpg 的文件打成一個 tar 包,並且將其用 gzip 壓縮,生成一個 gzip 壓縮過的包,包名為 all.tar.gz # tar -xzf all.tar.gz 這條命令是將上面產生的包解開。
gzip、bzip2
為了方便用戶在打包解包的同時可以壓縮或解壓文件,tar 提供了一種特殊的功能。這就是 tar 可以在打包或解包的同時調用其它的壓縮程序,比如調用 gzip、bzip2 等。
tar
調用
bzip2
bzip2
是一個壓縮能力更強的壓縮程序,
.bz2
結尾的文件就是
bzip2
壓縮的結果。與
bzip2
相對的解壓程
序是
bunzip2
。
tar
中使用
-j
這個參數來調用
gzip
。下面來舉例說明一下:
# 將所有.jpg 的文件打成一個 tar 包並且將其用 bzip2 壓縮,生成一個bzip2 壓縮過的包,包名為 all.tar.bz2 tar -cjf all.tar.bz2 *.jpg # 這條命令是將上面產生的包解開 tar -xjf all.tar.bz2
下面對於
tar
系列的壓縮文件作一個小結:
- 對於.tar 結尾的文件tar -xf all.tar
- 對於.gz 結尾的文件
- gzip -d all.gz
- gunzip all.gz
- 對於.tgz 或.tar.gz 結尾的文件
- tar -xzf all.tar.gz
- tar -xzf all.tgz
- 對於.bz2 結尾的文件
- bzip2 -d all.bz2
- bunzip2 all.bz2
- 對於 tar.bz2 結尾的文件tar -xjf all.tar.bz2
- 對於.Z 結尾的文件uncompress all.Z
- 對於.tar.Z 結尾的文件tar -xZf all.tar.z