在介紹壓縮文件之前呢,首先要弄清兩個概念:打包和壓縮透揣。打包是指將一大堆文件或目錄什么的變成一個總的文件妆棒,壓縮則是將一個大的文件通過一些壓 縮算法變成一個小文件。為什么要區(qū)分這兩個概念呢?其實這源于 Linux 中的很多壓縮程序只能針對一個文件進行壓縮敞映,這樣當你想要壓縮一大堆文件時较曼,你就得先借助另它的工具將這一大堆文件先打成一個包,然后再就原來的壓縮程序進行壓縮振愿。
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 種浙滤。
對應(yīng)關(guān)系如下:
- *.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 解壓
tar
Linux 下最常用的打包程序就是 tar 了阴挣,使用 tar 程序打出來的包我們常稱為 tar 包,tar 包文件的命令通常都是以.tar 結(jié)尾的纺腊。生成 tar 包后畔咧,就可以用其它的程序來進行壓縮了,所以首先就來講講 tar 命令的基本用法:
- tar 命令的選項有很多(用 man tar 可以查看到)揖膜,但常用的就那么幾個選項誓沸,下面來舉例說明一下:
# tar -cf all.tar *.jpg 這條命令是將所有.jpg 的文件打成一個名為 all.tar 的包。-c 是表示產(chǎn)生新的包壹粟,-f 指定包的文件名拜隧。
# tar -rf all.tar *.gif 這條命令是將所有.gif 的文件增加到 all.tar 的包里面去宿百。-r 是表示增加文件的意思。
# tar -uf all.tar logo.gif 這條命令是更新原來 tar 包 all.tar 中 logo.gif 文件洪添,-u 是表示更新文件的意思垦页。
# tar -tf all.tar 這條命令是列出 all.tar 包中所有文件,-t 是列出文件的意思
# tar -xf all.tar 這條命令是解出 all.tar 包中所有文件干奢,-t 是解開的意思
以上就是 tar 的最基本的用法痊焊。為了方便用戶在打包解包的同時可以壓縮或解壓文件,tar 提供了一種特殊的功能忿峻。
- tar 調(diào)用 gzip
gzip 是 GNU 組織開發(fā)的一個壓縮程序薄啥,.gz 結(jié)尾的文件就是 gzip 壓縮的結(jié)果。與 gzip 相對的解壓程序是gunzip逛尚。tar 中使用-z 這個參數(shù)來調(diào)用 gzip垄惧。下面來舉例說明一下:
# tar -czf all.tar.gz *.jpg 這條命令是將所有.jpg 的文件打成一個 tar 包,并且將其用 gzip 壓縮绰寞,生成一個gzip 壓縮過的包赘艳,包名為 all.tar.gz
# tar -xzf all.tar.gz 這條命令是將上面產(chǎn)生的包解開。
- tar 調(diào)用 bzip2
bzip2 是一個壓縮能力更強的壓縮程序克握,.bz2 結(jié)尾的文件就是 bzip2 壓縮的結(jié)果蕾管。與 bzip2 相對的解壓程序是 bunzip2。tar 中使用-j 這個參數(shù)來調(diào)用 gzip菩暗。下面來舉例說明一下:
# tar -cjf all.tar.bz2 *.jpg 這條命令是將所有.jpg 的文件打成一個 tar 包掰曾,并且將其用 bzip2 壓縮,生成一個bzip2 壓縮過的包停团,包名為 all.tar.bz2
# tar -xjf all.tar.bz2 這條命令是將上面產(chǎn)生的包解開旷坦。
- unzip
unzip命令用于解壓縮由zip命令壓縮的“.zip”壓縮包。
# unzip test.zip 將壓縮文件text.zip在當前目錄下解壓
# unzip -n test.zip -d /tmp 將壓縮文件text.zip在指定目錄/tmp下解壓縮佑稠,如果已有相同的文件存在秒梅,要求unzip命令不覆蓋原先的文件
# unzip -v test.zip 查看壓縮文件目錄,但不解壓舌胶。