1. 程式人生 > >第八章-文檔的壓縮與打包

第八章-文檔的壓縮與打包

有一種 .gz direct 壓縮工具 local updating 是否 空間 bzcat

在windows下我們接觸最多的壓縮文件就是.rar格式的了。但在linux下這樣的格式是不能識別的,它有自己所特有的壓縮工具。但有一種文件在windows和linux下都能使用那就是.zip格式的文件了。壓縮的好處不用阿銘介紹相信你也曉得吧,它不僅能節省磁盤空間而且在傳輸的時候還能節省網絡帶寬呢。
在linux下最常見的壓縮文件通常都是以.tar.gz 為結尾的,除此之外還有.tar, .gz, .bz2, .zip等等。以前也介紹過linux系統中的後綴名其實要不要無所謂,但是對於壓縮文件來講必須要帶上。這是為了判斷壓縮文件是由哪種壓縮工具所壓縮,而後才能去正確的解壓縮這個文件。以下介紹常見的後綴名所對應的壓縮工具。
.gz gzip 壓縮工具壓縮的文件
.bz2 bzip2 壓縮工具壓縮的文件.tar tar 打包程序打包的文件(tar並沒有壓縮功能,只是把一個目錄合並成一個文件).tar.gz 可以理解為先用tar打包,然後再gzip壓縮.tar.bz2 同上,先用tar打包,然後再bzip2壓縮

1.gzip壓縮工具
“-d” : 解壓縮時使用“-#” : 壓縮等級,1壓縮最差,9壓縮最好,6為默認
[root@localhost ~]# [ -d test ] && rm -rf test[root@localhost ~]# mkdir test[root@localhost ~]# mv test.txt test[root@localhost ~]# cd test[root@localhost test]# lstest.txt
[root@localhost test]# gzip test.txt[root@localhost test]# lstest.txt.gz
你對第一條命令也許很陌生,其實這是兩條命令,[ ] 內是一個判斷,”-d test” 判斷test目錄是否存在,’&&’ 為一個連接命令符號,當前面的命令執行成功後,後面的命令才執行。關於這兩塊內容阿銘會在後面詳細講解。gzip 後面直接跟文件名,就在當前目錄下把該文件壓縮了,而原文件也會消失。
[root@localhost test]# gzip -d test.txt.gz[root@localhost test]# lstest.txt
“gzip -d” 後面跟壓縮文件,會解壓壓縮文件。gzip 是不支持壓縮目錄的。

[root@localhost ~]# gzip testgzip: test is a directory -- ignored[root@localhost ~]# ls testtest/ test1 test2/ test3[root@localhost ~]# ls testtest.txt至於 “-#” 選項,平時很少用,使用默認壓縮級別足夠了。



2.bzip2壓縮工具
bzip2 只有兩個選項需要你掌握。“-d” : 解壓縮“-z” : 壓縮
壓縮時,可以加 “-z” 也可以不加,都可以壓縮文件,”-d” 則為解壓的選項:[root@localhost ~]# cd test[root@localhost test]# bzip2 test.txt[root@localhost test]# lstest.txt.bz2[root@localhost test]# bzip2 -d test.txt.bz2[root@localhost test]# bzip2 -z test.txt[root@localhost test]# lstest.txt.bz2bzip2 同樣也不可以壓縮目錄:
[root@localhost test]# cd ..[root@localhost ~]# bzip2 testbzip2: Input file test is a directory.

3.xz壓縮工具

bzip2 -d 1.txt.bz2xz 1.txtlsxz -d 1.txt.xzxz -z 1.txtls



4.tar壓縮工具
tar 本身為一個打包工具,可以把目錄打包成一個文件,它的好處是它把所有文件整合成一個大文件整體,方便拷貝或者移動。
“-z” : 同時用gzip壓縮“-j” : 同時用bzip2壓縮“-x” : 解包或者解壓縮“-t” : 查看tar包裏面的文件“-c” : 建立一個tar包或者壓縮文件包“-v” : 可視化“-f” : 後面跟文件名,壓縮時跟 “-f 文件名”,意思是壓縮後的文件名為filename, 解壓時跟 “-f 文件名”,意思是解壓filename. 請註意,如果是多個參數組合的情況下帶有 “-f”,請把 “-f” 寫到最後面。“-p” : 使用原文件的屬性,壓縮前什麽屬性壓縮後還什麽屬性。(不常用)“-P” : 可以使用絕對路徑。(不常用)--exclude filename : 在打包或者壓縮時,不要將filename文件包括在內。(不常用)
cd testxz -d 1.txt.xzmkdir test111touch test111/2.txtecho "nihao" > !$echo "nihao" > test111/2.txtcp 1.txt test111/yum install tree //安裝tree命令,用來查看目錄樹結構tree ..├── test111│ ├── 2.txt│ └── test.txt└── test.txt
1 directory, 3 files
tar -cvf test111.tar test111test111/test111/2.txttest111/1.txtls

首先在test目錄下建立test111目錄,然後在test111目錄下建立test2.txt, 並寫入 “nihao” 到test2.txt中,接著是用tar把test111打包成test111.tar. 請記住 “-f” 參數後跟的是打包後的文件名, 然後再是要打包的目錄或者文件。tar 打包後,原文件不會消失,而依舊存在。在上例中,阿銘使用一個特殊的符號 ”!$” 它表示上一條命令的最後一個參數,比如在本例中,它表示”test111/test2.txt”. tar 不僅可以打包目錄也可以打包文件,打包的時候也可以不加 “-v” 選項表示,表示不可視化。
[root@localhost test]# rm -f test111.tar[root@localhost test]# tar -cf test.tar test111 test.txt[root@localhost test]# lstest111 test.tar test.txt.bz2刪除原來的test111目錄,然後解包test.tar,不管是打包還是解包,原來的文件是不會刪除的,而且它會覆蓋當前已經存在的文件或者目錄。
[root@localhost test]# rm -rf test111[root@localhost test]# lstest.tar test.txt.bz2[root@localhost test]# tar -xvf test.tartest111/test111/test2.txttest.txt.bz2

5.打包的同時使用gzip壓縮
tar命令非常好用的一個功能就是可以在打包的時候直接壓縮,它支持gzip壓縮和bzip2壓縮。
[root@localhost test]# tar -czvf test111.tar.gz test111test111/test111/test2.txt
[root@localhost test]# lstest111 test111.tar.gz test.tar test.txt.bz2
“-tf” 可以查看包或者壓縮包的文件列表:[root@localhost test]# tar -tf test111.tar.gztest111/test111/test2.txt[root@localhost test]# tar -tf test.tartest111/test111/test2.txttest.txt.bz2
“-zxvf” 用來解壓.tar.gz的壓縮包[root@localhost test]# rm -rf test111[root@localhost test]# lstest111.tar.gz test.tar test.txt.bz2[root@localhost test]# tar -zxvf test111.tar.gztest111/test111/test2.txt[root@localhost test]# lstest111 test111.tar.gz test.tar test.txt.bz2

6.打包的同時使用bzip2壓縮
和gzip壓縮不同的是,這裏使用 “-cjvf” 選項來壓縮[root@localhost test]# tar -cjvf test111.tar.gz test111test111/[root@localhost test]# lstest111 test111.tar.gz test.tar test.txt[root@localhost test]#

同樣可以使用 “-tf” 來查看壓縮包文件列表[root@localhost test]# tar -tf test111.tar.gztest111/

7.打包的同時使用.tar.bz2壓縮[root@localhost test]# tar -cjvf test111.tar.bz2 test111test111/
使用-tf選項來查看壓縮包的文件列表,示例命令如下:tar -tf test111.tar.bz2[root@localhost test]# tar -tf test111.tar.bz2test111/
8.使用zip壓縮


壓縮zip文件yum install -y zip 安裝zip
[root@localhost test]# zip 1.txt.zip 111.txtupdating: 111.txt (stored 0%)[root@localhost test]# zip test111.zip test111/*updating: test111/ (stored 0%)
解壓zip文件
yum install -y unzip
[root@localhost test]# unzip 1.txt.zip Archive: 1.txt.zipreplace 111.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y extracting: 111.txt

9.zcat、bzcat命令的使用
上面介紹了使用-t選項可以查看tar壓縮包的文件列表,對於gzip2或者bzip2壓縮格式的文本文檔,我們也可以使用zcat,bzcat命令直接查看文檔內容cp /etc/passwd ./11.txtcp 11.txt 22.txtgzip 11.txtbzip2 22.txtzcat 11.txt.gzbzcat 22.txt.bz2




















第八章-文檔的壓縮與打包