linux下數(shù)據(jù)壓縮的幾種方法與查看方式(示例代碼)
1,tar命令
使用tar程序打出來的包我們常稱為tar包,tar包文件的命令通常都是以.tar結(jié)尾的。生成tar包后,就可以用其它的程序來進(jìn)行壓縮了,tar命令本身不進(jìn)行數(shù)據(jù)壓縮,但可以在打包或解包的同時調(diào)用其它的壓縮程序,比如調(diào)用gzip、bzip2
選項:
-c 創(chuàng)建.tar格式包文件
-x 解開.tar格式包文件
-v顯示詳細(xì)信息
-f 使用歸檔文件
-p 保留原始文件權(quán)限
-C 解壓到目標(biāo)文件夾
-z 調(diào)用gzip進(jìn)行壓縮或解壓
-j 調(diào)用bzip2進(jìn)行壓縮或解壓
打包示例:
tar -cvf /root/Desktop/aa.tar bb.txt 打包文件
打包并壓縮示例:
tar -zcvf /root/Desktop/aa.tar.gz bb.txt
壓縮文件
解壓縮示例:
tar -zxvf /root/Desktop/aa.tar.gz -C /aa/bb
解壓文件
2,gzip壓縮
常用數(shù)據(jù)壓縮命令,壓縮比例可手工調(diào)整, 壓縮后文件名 filename.gz:
注:壓縮后文件可直接load至hive數(shù)據(jù)庫,但每個文件只會產(chǎn)生一個map,查詢效率極低
選項:
-c 將輸出寫到標(biāo)準(zhǔn)輸出上,并保留原有文件。
-d 將壓縮文件解壓。
-l 對每個壓縮文件,顯示下列字段:
壓縮文件的大?。晃磯嚎s文件的大??;壓縮比;未壓縮文件的名字
-r 遞歸式地查找指定目錄并壓縮其中的所有文件或者是解壓縮。
-t 測試,檢查壓縮文件是否完整。
-v 對每一個壓縮和解壓的文件,顯示文件名和壓縮比。
-num 用指定的數(shù)字 num 調(diào)整壓縮的速度,-1 或 --fast 表示最快壓縮方法(低壓縮比),
-9 或--best表示最慢壓縮方法(高壓縮比)。系統(tǒng)缺省值為 6。
壓縮示例:
gzip filename
查看gzip壓縮文件內(nèi)容命令:
zcat filename.gz
解壓縮命令:
gzip -d filename.gz
壓縮過程中可控制壓縮率(1-9),1壓縮最快,壓縮率不高,9壓縮最慢,壓縮比例最高,缺省為6,例如:
gzip -9 filename
3,bzip2壓縮
常用數(shù)據(jù)壓縮命令,壓縮比例比gzip高,壓縮后文件名為filename.bz2
注:壓縮后文件可直接load至hive數(shù)據(jù)庫
選項
-c或——stdout:將壓縮與解壓縮的結(jié)果送到標(biāo)準(zhǔn)輸出;
-d或——decompress:執(zhí)行解壓縮;
-f或-force:bzip2在壓縮或解壓縮時,若輸出文件與現(xiàn)有文件同名,預(yù)設(shè)不會覆蓋現(xiàn)有文件。若要覆蓋。請使用此參數(shù);
-h或——help:在線幫助;
-k或——keep:bzip2在壓縮或解壓縮后,會刪除原始文件。若要保留原始文件,請使用此參數(shù);
-s或——small:降低程序執(zhí)行時內(nèi)存的使用量;
-t或——test:測試.bz2壓縮文件的完整性;
-v或——verbose:壓縮或解壓縮文件時,顯示詳細(xì)的信息;
-z或——compress:強制執(zhí)行壓縮;
-V或——version:顯示版本信息;
--repetitive-best:若文件中有重復(fù)出現(xiàn)的資料時,可利用此參數(shù)提高壓縮效果;
--repetitive-fast:若文件中有重復(fù)出現(xiàn)的資料時,可利用此參數(shù)加快執(zhí)行效果。
壓縮示例:
bzip2 filename
解壓縮示例:
bzip2 -d filename.bz2
直接查看壓縮文件示例:
bzcat filename.bz2
使用默認(rèn)壓縮情況下壓縮性能:
bzip2 > gzip > tar
總結(jié)
以上所述是小編給大家介紹的linux下數(shù)據(jù)壓縮的幾種方法與查看方式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
bash批量修改文件名稱的方法小結(jié)(增加,去除,修改后綴)
bash批量修改文件名稱的方法總結(jié),包括為文件增加后綴、修改文件名后綴、去除文件名后綴、修改文件名前綴,有需要的朋友可以參考下2013-02-02Shell編程之/bin/bash和/bin/sh的區(qū)別淺析
在redhat的系統(tǒng)中,sh是一個到bash的軟鏈接,但是如果運行如下程序會產(chǎn)生不一樣的結(jié)果,下面這篇文章主要給大家介紹了關(guān)于Shell編程之/bin/bash和/bin/sh的區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-07-07shell 命令統(tǒng)計代碼行數(shù)的簡單代碼
這篇文章主要介紹了shell 命令統(tǒng)計代碼行數(shù)的簡單代碼,文中給大家提到了統(tǒng)計行數(shù)、字符數(shù)、字節(jié)數(shù)的shell腳本 ,需要的朋友可以參考下2018-04-04Shell腳本導(dǎo)入導(dǎo)出數(shù)據(jù)的項目示例
在工作中,很多場景都會涉及到數(shù)據(jù)的導(dǎo)入導(dǎo)出,本文就介紹一下使用Shell腳本導(dǎo)入導(dǎo)出數(shù)據(jù)的項目示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04