今天就跟大家聊聊有關(guān)Linux系統(tǒng)中怎么利用Bzip2壓縮文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
專注于為中小企業(yè)提供做網(wǎng)站、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)東山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
安裝 Bzip2
命令如下:
make -f Makefile-libbz2_so &&
make &&
make install &&
cp bzip2-shared /bin/bzip2 &&
ln -s libbz2.so.1.0 libbz2.so &&
cp -a libbz2.so* /lib &&
rm /lib/libbz2.so &&
ln -s ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so &&
rm /usr/bin/{bunzip2,bzcat,bzip2} &&
mv /usr/bin/{bzip2recover,bzless,bzmore} /bin &&
ln -s bzip2 /bin/bunzip2 &&
ln -s bzip2 /bin/bzcat
盡管不是一個(gè)必需的部分,值得說(shuō)到的是有一個(gè)Tar包用的補(bǔ)丁,使tar程序可以更容易地用bzip2/bunzip2來(lái)壓縮和解壓。如果是單純的tar,你不得不用這樣的命令:bzcat file.tar.bz | tar -xv 或 tar --use-compress-prog=bunzip2 -xvf file.tar.bz2 來(lái)使用bzip2和bunzip2。這個(gè)補(bǔ)丁提供了 -j 選項(xiàng),你可以用這樣的命令: tar -xvfj file.tar.bz2 來(lái)解壓一個(gè)bzip2格式的包。應(yīng)用這個(gè)補(bǔ)丁將在后面安裝Tar包的時(shí)候說(shuō)到。
簡(jiǎn)介
bzip2, bunzip2 - 一種塊排序文件壓縮軟件,v0.9.5
bzcat - 將文件解壓縮至標(biāo)準(zhǔn)輸出
bzip2recover - 恢復(fù)損壞的 bzip2 文件
bzip2 采用 Burrows-Wheeler 塊排序文本壓縮算法和 Huffman 編碼方式壓縮文件。 壓縮率一般比基于 LZ77/LZ78 的壓縮軟件好得多,其性能接近 PPM 族統(tǒng)計(jì)類 壓縮軟件。
命令行參數(shù)有意設(shè)計(jì)為非常接近 GNU gzip 的形式,但也不完全相同。
bzip2 從命令行讀入文件名和參數(shù)。 每個(gè)文件被名為 "原始文件名.bz2" 的壓縮文件替換。 每個(gè)壓縮文件具有與原文件相同的修改時(shí)間、 權(quán)限, 如果可能的話, 還具有相同的屬主, 因此在解壓縮時(shí)這些特性將正確地恢復(fù)。 在某些文件系統(tǒng)中, 沒(méi)有權(quán)限、 屬主或時(shí)間的概念, 或者對(duì)文件名的長(zhǎng)度有嚴(yán)格限制, 例如 MSDOS, 在這種情況下,bzip2 沒(méi)有保持原文件名、 屬主、 權(quán)限以及時(shí)間的機(jī)制, 從這個(gè)意義上說(shuō),bzip2 對(duì)文件名的處理是幼稚的。
bzip2 和 bunzip2 在缺省情況下不覆蓋已有的文件。 如果想覆蓋已有的文件,要指定 -f 選項(xiàng)。
如果未指定文件名, bzip2 將壓縮來(lái)自標(biāo)準(zhǔn)輸入的數(shù)據(jù)并寫往標(biāo)準(zhǔn)輸出。在這種情況下, bzip2 會(huì)拒絕將壓縮結(jié)果寫往終端,因?yàn)檫@完全無(wú)法理解并且是沒(méi)有意義的。
bunzip2 (以及 bzip2 -d) 對(duì)所有指定的文件進(jìn)行解壓縮處理。不是由 bzip2 產(chǎn)生的文件將被忽略,同時(shí)發(fā)出一個(gè)警告信息。 bzip2 按下列方式由壓縮文件名確定解壓后的文件名:
filename.bz2 解壓成 filename
filename.bz 解壓成 filename
filename.tbz2 解壓成 filename.tar
filename.tbz 解壓成 filename.tar
anyothername 解壓成 anyothername.out
如果文件名的后綴不是下列之一: .bz2, .bz, .tbz2 或 .tbz, .bzip2 將抱怨無(wú)法確定原始文件名,并采用原文件名加 .out 作為解壓縮文件名。
在壓縮時(shí),如果不提供文件名,bzip2 將從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),壓縮結(jié)果寫往標(biāo)準(zhǔn)輸出。
bunzip2 能夠正確地解壓由兩個(gè)或更多個(gè)壓縮文件連在一起的文件。 解壓的結(jié)果為相應(yīng)的連在一起的未壓縮文件。
bzip2 也支持對(duì)連在一起的壓縮文件的完整性檢查(-t選項(xiàng))。
同樣可采用 -c 選項(xiàng)將文件壓縮或解壓縮至標(biāo)準(zhǔn)輸出。 多個(gè)文件可通過(guò)這種方式壓縮或解壓縮。 輸出結(jié)果被依次送往標(biāo)準(zhǔn)輸出。 采用這種方式對(duì)多個(gè)文件的壓縮將生成包含 多個(gè)壓縮文件的數(shù)據(jù)流。這樣的數(shù)據(jù)流只能被 0.9.0 版或其后續(xù)版本的 bzip2 正確解壓。較早版本的 bzip2 會(huì)在解壓完第一個(gè)文件之后停止。
bzcat (或 bzip2 -dc) 將所有指定文件解壓縮至標(biāo)準(zhǔn)輸出。
bzip2 可從環(huán)境變量 BZIP2 和 BZIP 中依次讀取參數(shù), 并在命令行參數(shù)之前對(duì)其進(jìn)行處理。 這是提供缺省選項(xiàng)的方便途徑。
即使壓縮后的文件略大于原文件, 壓縮也總是照樣進(jìn)行。 小于大約 100 字節(jié)的文件壓縮后傾向于變大, 因?yàn)闀?huì)有一個(gè) 50 字節(jié)的數(shù)據(jù)頭。 對(duì)于隨機(jī)數(shù)據(jù) (包括大多數(shù)壓縮軟 件的輸出), 大約每字節(jié)壓成 8.05 位, 放大率約為 0.5%。
bzip2 采用 32 位 CRC 校驗(yàn)碼作自我檢查,以確認(rèn)解壓后的文件與原始文件相同。 這可用于檢測(cè)壓縮文件是否損壞,并防止 bzip2 中未知的缺陷(運(yùn)氣好的話這種可能性非常?。?。 數(shù)據(jù)損壞而未檢測(cè)到的幾率非常之小, 對(duì)于每個(gè)被處理的文件大約是四十億分之一。 檢查是在解壓縮時(shí)進(jìn)行的, 因此它只能說(shuō)明某個(gè)地方出問(wèn)題了。 它能幫助恢復(fù)原始未壓縮的數(shù)據(jù)??梢杂?bzip2recover 來(lái)嘗試從損壞的文件中恢復(fù)數(shù)據(jù)。
返回值:正常退出返回 0, 出現(xiàn)環(huán)境問(wèn)題返回 1 (文件未找到,非法的選項(xiàng),I/O錯(cuò)誤等), 返回 2 表明壓縮文件損壞,出現(xiàn)導(dǎo)致 bzip2 緊急退出的內(nèi)部一致性錯(cuò)誤(例如缺陷)時(shí)返回 3。
參數(shù)
-c --stdout
將數(shù)據(jù)壓縮或解壓縮至標(biāo)準(zhǔn)輸出。
-d --decompress
強(qiáng)制解壓縮。 bzip2, bunzip2 以及 bzcat 實(shí)際上是同一個(gè)程序,進(jìn)行何種操作將根據(jù)程序名確定。 指定該選項(xiàng)后將不考慮這一機(jī)制,強(qiáng)制 bzip2 進(jìn)行解壓縮。
-z --compress
-d 選項(xiàng)的補(bǔ)充:強(qiáng)制進(jìn)行壓縮操作,而不管執(zhí)行的是哪個(gè)程序。
-t --test
檢查指定文件的完整性,但并不對(duì)其解壓縮。 實(shí)際上將對(duì)數(shù)據(jù)進(jìn)行實(shí)驗(yàn)性的解壓縮操作,而不輸出結(jié)果。
-f --force
強(qiáng)制覆蓋輸出文件。通常 bzip2 不會(huì)覆蓋已經(jīng)存在的文件。該選項(xiàng)還強(qiáng)制 bzip2 打破文件的硬連接,缺省情況下 bzip2 不會(huì)這么做。
-k --keep
在壓縮或解壓縮時(shí)保留輸入文件(不刪除這些文件)。
-s --small
在壓縮、 解壓縮及檢查時(shí)減少內(nèi)存用量。 采用一種修正的算法進(jìn)行壓縮和測(cè)試, 每個(gè)數(shù)據(jù)塊僅需要 2.5 個(gè)字節(jié)。 這意味著任何文件都可以在 2300k 的內(nèi)存中進(jìn)行解壓縮, 盡管速度只有通常情況下的一半。
在壓縮時(shí),-s將選定 200k 的塊長(zhǎng)度,內(nèi)存用量也限制在 200k 左右, 代價(jià)是壓縮率會(huì)降低。 總之,如果機(jī)器的內(nèi)存較少(8兆字節(jié)或更少), 可對(duì)所有操作都采用-s選項(xiàng)。參見下面的內(nèi)存管理。
-q --quiet
壓制不重要的警告信息。屬于 I/O 錯(cuò)誤及其它嚴(yán)重事件的信息將不會(huì)被壓制。
-v --verbose
詳盡模式 -- 顯示每個(gè)被處理文件的壓縮率。 命令行中更多的 -v 選項(xiàng)將增加詳細(xì)的程度, 使 bzip2 顯示出許多主要用于診斷目的信息。
-L --license -V --version
顯示軟件版本,許可證條款及條件。
-1 to -9
在壓縮時(shí)將塊長(zhǎng)度設(shè)為 100 k、200 k .. 900 k。 對(duì)解壓縮沒(méi)有影響。參見下面的內(nèi)存管理。
--
將所有后面的命令行變量看作文件名,即使這些變量以減號(hào)"-"打頭。 可用這一選項(xiàng)處理以減號(hào)"-"打頭的文件名, 例如:bzip2 -- -myfilename.
--repetitive-fast --repetitive-best
這些選項(xiàng)在 0.9.5 及其以上版本中是多余的。 在較早的版本中,這兩個(gè)選項(xiàng)對(duì)排序算法 的行為提供了一些粗糙的控制,有些情況下很有用。 0.9.5 及其以上版本采用了改進(jìn)的算法而與這些選項(xiàng)無(wú)關(guān)。
例:
例a,壓縮
代碼如下:
[root@localhost ~]# bzip2 -z abc.sh #壓縮
代碼如下:
[root@localhost ~]# bzip2 -kv abc.sh #壓縮原文保留
abc.sh: 1.220:1, 6.557 bits/byte, 18.04% saved, 255 in, 209 out.
代碼如下:
[root@localhost ~]# bzip2 -9 -c abc.sh >abc.bz2 #壓縮原文保留
例b,解壓
代碼如下:
root@tnak-VirtualBox:/home/tnak# bzip2 -dv abc.sh.bz2
abc.sh.bz2: done
看完上述內(nèi)容,你們對(duì)Linux系統(tǒng)中怎么利用Bzip2壓縮文件有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
文章標(biāo)題:Linux系統(tǒng)中怎么利用Bzip2壓縮文件
分享地址:http://www.rwnh.cn/article8/jicpip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、搜索引擎優(yōu)化、建站公司、網(wǎng)站改版、響應(yīng)式網(wǎng)站、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)