使用壓縮工具的好處:
使用壓縮文件,不只能夠節省磁盤空間,並且在傳輸時還能節省網絡寬帶。linux
咱們一般講的家用寬帶和機房寬帶100M是有區別的:
機房寬帶的上行和下行都是100M,因此價格昂貴,家用寬帶下行是100M,可是上行每每只有10M-20M數組
格式:gzip [參數] filename -d是解壓縮。bash
例子:查找/etc/下後綴爲.conf的文件,並將它的內容追加到文件1.txt中,而且壓縮它,而後再解壓。網絡
[root@linux-128 d6z]# find /etc/ -type f -name "*.conf" -exec cat {} >>1.txt \; [root@linux-128 d6z]# du -sh 1.txt 4.0M 1.txt //這裏要注意一下,這個大小不太準確,這裏屢次追加會看到文件,du -sh 1.txt查看的文件數值不一樣,但在屢次查看,文件大小會恢復正常。(跳轉數值較大比,是由於這個文件自己存在不少空隙,最後在壓縮並解壓後,會發現大小會有不一樣) [root@linux-128 d6z]# gzip 1.txt [root@linux-128 d6z]# du -sh 1.txt.gz 664K 1.txt.gz [root@linux-128 d6z]# gzip -d 1.txt.gz [root@linux-128 d6z]# du -sh 1.txt 2.5M 1.txt [root@linux-128 d6z]# gzip 1.txt [root@linux-128 d6z]# du -sh 1.txt.gz 664K 1.txt.gz [root@linux-128 d6z]# gunzip 1.txt.gz [root@linux-128 d6z]# du -sh 1.txt 2.5M 1.txt
[root@linux-128 d6z]# gzip -c 1.txt > /tmp/1.txt.gz [root@linux-128 d6z]# ls 1.txt [root@linux-128 d6z]# ls /tmp/1.txt.gz /tmp/1.txt.gz [root@linux-128 d6z]# du -sh /tmp/1.txt.gz 664K /tmp/1.txt.gz
[root@linux-128 d6z]# gzip -d -c /tmp/1.txt.gz > ./2.txt [root@linux-128 d6z]# ls 1.txt 2.txt [root@linux-128 d6z]# wc -l 1.txt 2.txt 64790 1.txt 64790 2.txt 129580 總用量 [root@linux-128 d6z]# du -sh 1.txt 2.txt 2.5M 1.txt 2.5M 2.txt [root@linux-128 d6z]# ls /tmp/1.txt.gz /tmp/1.txt.gz
[root@linux-128 d6z]# zcat /tmp/1.txt.gz
[root@linux-128 d6z]# file /tmp/1.txt.gz /tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Thu Nov 9 22:33:33 2017 /tmp/1.txt.gz 壓縮數據是1.txt,基於unix平臺,最後修改時間是2017年11月9日星期四
bzip命令的格式:bzip2 [-dz] filename ,壓縮文件時加不加-z都同樣,-d 解壓縮。
bzip比gzip壓縮更小,所耗費的CPU資源也最大(壓縮的文件也是最小的)工具
第一次使用bzip2命令時提示沒有這個命令,咱們用yum安裝一下spa
[root@linux-128 d6z]# bzip2 1.txt -bash: bzip2: 未找到命令 [root@linux-128 d6z]# yum install -y bzip2
[root@linux-128 d6z]# bzip2 1.txt [root@linux-128 d6z]# ls 1.txt.bz2 2.txt
[root@linux-128 d6z]# bzip2 -d 1.txt.bz2 [root@linux-128 d6z]# ls 1.txt 2.txt
[root@linux-128 d6z]# bzip2 -c 1.txt > /tmp/1.txt.bz2 [root@linux-128 d6z]# ls /tmp/1.txt.bz2 /tmp/1.txt.bz2 [root@linux-128 d6z]# ls 1.txt 2.txt
[root@linux-128 d6z]# bzip2 -d -c /tmp/1.txt.bz2 > ./3.txt [root@linux-128 d6z]# ls 1.txt 2.txt 3.txt [root@linux-128 d6z]# ls /tmp/1.txt.bz2 /tmp/1.txt.bz2
[root@linux-128 d6z]# bzcat /tmp/1.txt.bz2
[root@linux-128 d6z]# file /tmp/1.txt.bz2 /tmp/1.txt.bz2: bzip2 compressed data, block size = 900k //bzip2壓縮數據,大小爲900k
xz命令格式:xz[-zd] filename 壓縮文件加不加-z均可以,-d解壓縮。
xz壓縮文件比bzip2更小,所耗費的CPU資源也最大(壓縮的文件也是最小的)unix
xz 1.txt / xz -z 1.txt //壓縮文件code
xz -d 1.txt.xz / unxz 1.txt.xz //解壓縮文件ip
xz -# 1.txt //#範圍1-9,默認9資源
不能壓縮目錄
xzcat 1.txt.xz //查看壓縮文件內容
xz -c 1.txt > /root/1.txt.xz //指定壓縮文件路徑,而且源文件存在
xz -d -c /root/1.txt.xz > 1.txt.new3 //解壓文件到指定路徑下,而且源壓縮文件存在
file 1.txt.xz查看文件屬性
壓縮文件1.txt
root@linux-128 d6z]# xz 1.txt [root@linux-128 d6z]# ls 1.txt.xz 2.txt 3.txt
[root@linux-128 d6z]# xz -d 1.txt.xz [root@linux-128 d6z]# ls 1.txt 2.txt 3.txt
[root@linux-128 d6z]# xz -c 1.txt > /tmp/1.txt.xz [root@linux-128 d6z]# ls 1.txt 2.txt 3.txt [root@linux-128 d6z]# ls /tmp/1.txt.xz /tmp/1.txt.xz
[root@linux-128 d6z]# xz -d -c /tmp/1.txt.xz > ./4.txt [root@linux-128 d6z]# ls 1.txt 2.txt 3.txt 4.txt [root@linux-128 d6z]# ls /tmp/1.txt.xz /tmp/1.txt.xz
[root@linux-128 d6z]# file /tmp/1.txt.xz /tmp/1.txt.xz: XZ compressed data //xz壓縮數據。
[root@linux-128 d6z]# du -sh /tmp/1.txt.gz /tmp/1.txt.bz2 /tmp/1.txt.xz 664K /tmp/1.txt.gz 260K /tmp/1.txt.bz2 60K /tmp/1.txt.xz
zip命令能夠壓縮目錄和文件,-r 壓縮目錄。
[root@linux-128 d6z]# zip 1.txt.zip 1.txt -bash: zip: 未找到命令 [root@linux-128 d6z]# yum install -y zip
[root@linux-128 d6z]# zip 1.txt.zip 1.txt adding: 1.txt (deflated 74%) [root@linux-128 d6z]# ls 1.txt 1.txt.zip 2.txt 3.txt 4.txt test [root@linux-128 d6z]# du -sh 1.txt.zip 664K 1.txt.zip
[root@linux-128 d6z]# zip -r test.zip test adding: test/ (stored 0%) adding: test/3.txt (deflated 74%) adding: test/4.txt (deflated 74%) [root@linux-128 d6z]# ls 1.txt 1.txt.zip 2.txt 3.txt 4.txt test test.zip [root@linux-128 d6z]# du -sh test.zip 1.3M test.zip [root@linux-128 d6z]# du -sh test 5.0M test
[root@linux-128 d6z]# unzip 1.txt.zip -bash: unzip: 未找到命令 [root@linux-128 d6z]# yum install -y unzip
[root@linux-128 d6z]# unzip 1.txt.zip Archive: 1.txt.zip replace 1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A //A表示所有 inflating: 1.txt [root@linux-128 d6z]# ls 1.txt 1.txt.zip 2.txt 3.txt 4.txt test test.zip
[root@linux-128 d6z]# unzip test.zip Archive: test.zip replace test/3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A inflating: test/3.txt inflating: test/4.txt
[root@linux-128 d6z]# unzip test.zip -d /tmp/test Archive: test.zip creating: /tmp/test/test/ inflating: /tmp/test/test/3.txt inflating: /tmp/test/test/4.txt [root@linux-128 d6z]# ls /tmp/test 333 test test1 test2
[root@linux-128 d6z]# unzip -l test.zip Archive: test.zip Length Date Time Name --------- ---------- ----- ---- 0 11-10-2017 22:44 test/ 2572100 11-10-2017 22:43 test/3.txt 2572100 11-10-2017 22:44 test/4.txt
[root@linux-128 d6z]# tar -cvf test.tar test 1.txt 2.txt test/ test/3.txt test/4.txt 1.txt 2.txt [root@linux-128 d6z]# ls 1.txt 1.txt.zip 2.txt 3.txt 4.txt test test.tar test.zip
[root@linux-128 d6z]# tar -tf test.tar test/ test/3.txt test/4.txt 1.txt 2.txt
[root@linux-128 d6z]# tar -xvf test.tar test/ test/3.txt test/4.txt 1.txt 2.txt
[root@linux-128 d6z]# tar -cvf test.tar --exclude 3.txt test 1.txt 2.txt test/ test/4.txt 1.txt 2.txt
[root@linux-128 d6z]# tar -cvf test.tar --exclude 3.txt --exclude test 1.txt 2.txt 1.txt 2.txt
[root@linux-128 d6z]# tar -zcvf test.tar.gz test 1.txt 2.txt test/ test/3.txt test/4.txt 1.txt 2.txt [root@linux-128 d6z]# ls 1.txt 1.txt.zip 2.txt 3.txt 4.txt test test.tar test.tar.gz test.zip
[root@linux-128 d6z]# tar -tf test.tar.gz test/ test/3.txt test/4.txt 1.txt 2.txt
解包
[root@linux-128 d6z]# tar -zxvf test.tar.gz test/ test/3.txt test/4.txt 1.txt 2.txt
[root@linux-128 d6z]# tar -jcvf test.tar.bz2 test 1.txt 2.txt test/ test/3.txt test/4.txt 1.txt 2.txt
解包
[root@linux-128 d6z]# tar -jxvf test.tar.bz2 test/ test/3.txt test/4.txt 1.txt 2.txt
[root@linux-128 d6z]# tar -Jcvf test.tar.xz test 1.txt 2.txt test/ test/3.txt test/4.txt 1.txt 2.txt
解包
[root@linux-128 d6z]# tar -Jxvf test.tar.xz test/ test/3.txt test/4.txt 1.txt 2.txt
[root@linux-128 d6z]# tar tf test.tar.xz test/ test/3.txt test/4.txt 1.txt 2.txt
[root@linux-128 d6z]# du -sh test.tar.gz test.tar.bz2 test.tar.xz 2.6M test.tar.gz 988K test.tar.bz2 64K test.tar.xz
注意:打包後文件越小,耗時越長,佔用cpu資源越多。