一藤为、壓縮技術(shù)解密
http://www.reibang.com/p/7db19fbf8b11
- 目前計算機系統(tǒng)中都是用bytes(字節(jié))單位來計量
- 事實上計算機最小的計量單位是bits(位)
- 1byte=8 bits
- 假設(shè)byte可以看成底下到模樣
1 0 1 1 1 0 1 0
5.8個空格就是8個位男摧,而每個空格可以是0或1,現(xiàn)在假設(shè)我們只存入了一個1叉钥,那會剩余到7個空位,默認情況下這7個空位無法在寫入數(shù)據(jù)勇垛。
6.但壓縮技術(shù)就是把這些沒用到到空間提出來扎运,以讓檔案占用到空間變小
二瑟曲、常見壓縮文件的擴展名
Linux 系統(tǒng)不以擴展名為文件類型識別的依據(jù),這里的擴展名只是讓用戶易于分辨豪治。
*.Z compress 程序壓縮的文件洞拨;
*.zip zip 程序壓縮的文件;
*.gz gzip 程序壓縮的文件负拟;
*.bz2 bzip2 程序壓縮的文件烦衣;
*.xz xz 程序壓縮的文件;
*.tar tar 程序打包的數(shù)據(jù)掩浙,并沒有壓縮過花吟;
*.tar.gz tar 程序打包的文件,其中并且經(jīng)過 gzip 的壓縮
*.tar.bz2 tar 程序打包的文件厨姚,其中并且經(jīng)過 bzip2 的壓縮
*.tar.xz tar 程序打包的文件衅澈,其中并且經(jīng)過 xz 的壓縮
常見命令工具
gzip, bzip2 以及 xz ,這些都只能對單個文件進行壓縮谬墙,不能操作目錄今布。
tar
可以對一個到多個文件或者一個目錄進行打包成一個單一的文件,但單獨使用 tar
命令時拭抬,只是打包部默,不壓縮。
后來造虎,GNU 計劃中傅蹂,將整個 tar 與壓縮的功能結(jié)合在一起,如此一來提供使用者更方便并且更強大的壓縮與打包功能算凿!
gzip
gzip 壓縮解壓單個文件
壓縮文件后份蝴,自動刪除源文件, 自動添加.gz
為擴展名
解壓文件后,自動刪除原壓縮文件
gzip [-vd] file
選項和參數(shù)
-v 壓縮時候顯示壓縮比
-d 解壓
cp /etc/services /tmp
cd /tmp
壓縮
gzip -v services
查看壓縮文件的內(nèi)容
zcat services.gz
搜索壓縮文件的關(guān)鍵字位置
zgrep blp5 services.gz
瀏覽壓縮文件
zless services.gz
解壓
gzip services.gz
壓縮文件并保留源文件
gzip -c services > services.gz
bzip2
更好的壓縮比澎媒,但是會占用相對多一些的時間
用法幾乎和 gzip 一樣
[dmtsai@study ~]$ bzip2 [-cdkzv#] 文件名
[dmtsai@study ~]$ bzcat 文件名.bz2
選項與參數(shù):
-c :將壓縮的過程產(chǎn)生的數(shù)據(jù)輸出到屏幕上搞乏!
-d :解壓縮的參數(shù)
-k :保留原始文件,而不會刪除原始的文件喔戒努!
-v :可以顯示出原文件/壓縮文件的壓縮比等信息请敦;
-# :與 gzip 同樣的,都是在計算壓縮比的參數(shù)储玫, -9 最佳侍筛, -1 最快!
示例
壓縮
bzip2 -v services
查看壓縮文件內(nèi)容
bzcat services.bg
bzless services.bz2
解壓
bzat -d services.bz2
xz 擴展
更高壓縮比撒穷,相應(yīng)的更長時間的耗費匣椰。
和前兩個幾乎一樣的用法
xz --help
tar
通用選項
-c :創(chuàng)建打包文件,可搭配 -v 來察看過程中被打包的文件名(filename)
-t :察看打包文件的內(nèi)容含有哪些文件名端礼,重點在察看“文件名”就是了禽笑;
-x :解打包或解壓縮的功能入录,可以搭配 -C (大寫) 在特定目錄解開
特別留意的是, -c, -t, -x 不可同時出現(xiàn)在一串命令行中佳镜。
-v :在壓縮/解壓縮的過程中僚稿,將正在處理的文件名顯示出來!
-f filename:-f 后面要立刻接要被處理的文件名蟀伸!建議 -f 單獨寫一個選項啰J赐(比較不會忘記)
-C 目錄 :這個選項用在解壓縮,若要在特定目錄解壓縮啊掏,可以使用這個選項蠢络。
只打包,不壓縮
創(chuàng)建
tar -cvf 創(chuàng)建后的文件名.tar 文檔1 文檔2
查看包內(nèi)的文件列表
tar -tf 創(chuàng)建后的文件名.tar
解包到當前位置
tar -xf 創(chuàng)建后的文件名.tar
解包到指定位置
tar -xf 創(chuàng)建后的文件名.tar -C /tmp
打包后進行壓縮
可以使用的選項
-z :通過 gzip 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.gz
-j :通過 bzip2 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.bz2
-J :通過 xz 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.xz
以上 3 個 選項互斥
特別的
-p(小寫) :保留備份數(shù)據(jù)的原本權(quán)限與屬性迟蜜,常用于備份重要的配置文件
-P(大寫) :保留絕對路徑刹孔,亦即允許備份數(shù)據(jù)中含有根目錄存在之意;
--exclude=FILE:在壓縮的過程中小泉,不要將 FILE 打包芦疏!
示例: 備份系統(tǒng)的配置文件,并且保留源文件的權(quán)限和屬性信息
time tar -zpcv -f etc.tar.gz /etc
time
命令可以計算某個程序執(zhí)行的時間
查看
查看壓縮包的文件列表
tar -tf etc.tar.gz
解壓
解壓壓縮包中的某一個文件
tar -xf etc.tar.gz etc/sysctl.conf_bk
解壓到指定目錄
tar -xf etc.tar.gz -C /tmp
壓縮的時候排除文檔
打包壓縮的時候可以排除一個或者多個文件或者目錄
排除一個文件
tar -jcv -f t.tar.bz2 d1 d2 --exclude=s1
排除多個文件
tar -jcv -f t.tar.bz2 d1 d2 --exclude={s1,s2}
目錄也可以
tar -jcv -f t.tar.bz2 d1 d2 --exclude=d1