Bunzip2 - Linux命令 - Unix命令

名稱

bzip2,bunzip2 - 一個塊排序文件壓縮器,v1.0.2
bzcat - 將文件解壓縮到標準輸出
bzip2recover - 從損壞的bzip2文件恢復數據

概要

bzip2 [ -cdfkqstvzVL123456789 ] [ 文件名... ]
bunzip2 [ -fkvsVL ] [ 文件名... ]
bzcat [ -s ] [ 文件名... ]
bzip2recover 文件名

描述

bzip2使用Burrows-Wheeler塊排序文本壓縮算法和霍夫曼編碼來壓縮文件。 壓縮比一般傳統的基於LZ77 / LZ78的壓縮機所獲得的壓縮好得多,並且接近PPM系列統計壓縮機的性能。

命令行選項有意與GNU gzip非常相似但它們並不完全相同。

bzip2需要伴隨命令行標誌的文件名列表。 每個文件都由其自身的壓縮版本替換,名稱為“original_name.bz2”。 每個壓縮文件具有相同的修改日期,權限,並且在可能的情況下擁有相應的原始文件,以便這些屬性可以在解壓縮時正確恢復。 文件名處理是天真的,因為沒有機制來保留缺少這些概念的文件系統中的原始文件名,權限,所有權或日期,或者俱有嚴重的文件名長度限制,如MS-DOS。

默認情況下, bzip2bunzip2不會覆蓋現有文件 。 如果您希望發生這種情況,請指定-f標誌。

如果沒有指定文件名,則bzip2從標準輸入壓縮到標準輸出。 在這種情況下, bzip2會拒絕將壓縮輸出寫入終端,因為這將完全不可理解,因此毫無意義。

bunzip2 (或bzip2 -d)解壓所有指定的文件。 未被bzip2創建的文件將被檢測到並被忽略,並發出警告。 bzip2嘗試從壓縮文件的文件名中猜測解壓縮文件的文件名,如下所示:


filename.bz2成為文件名
filename.bz變成文件名
filename.tbz2變成filename.tar
filename.tbz變成filename.tar
其他名稱變成anyothername.out

如果文件沒有以公認的結尾, .bz2, .bz, .tbz2.tbz結尾, bzip2會抱怨它無法猜測原始文件的名稱,並使用帶有.out的原始名稱。

與壓縮一樣,不提供文件名會導致從標準輸入到標準輸出的解壓縮。

bunzip2將正確地解壓縮一個文件,該文件是兩個或多個壓縮文件的串聯。 結果是相應的未壓縮文件的串聯。 還支持連接壓縮文件的完整性測試(-t)。

您還可以通過提供-c標誌將文件壓縮或解壓縮到標準輸出。 多個文件可能會像這樣被壓縮和解壓縮。 結果輸出順序饋送到標準輸出。 以這種方式壓縮多個文件產生包含多個壓縮文件表示的流。 這樣的流只能通過bzip2 0.9.0或更高版本正確解壓縮。 解壓縮流中的第一個文件後,早期版本的bzip2將停止。

bzcat (或bzip2 -dc)將所有指定的文件解壓縮到標準輸出。

bzip2將按照該順序從環境變量BZIP2BZIP讀取參數,並在從命令行讀取任何參數之前處理它們。 這提供了一種提供默認參數的便捷方式。

壓縮始終執行,即使壓縮文件略大於原始文件。 小於大約一百字節的文件往往會變大,因為壓縮機制在50字節的區域內具有恆定的開銷。 隨機數據(包括大多數文件壓縮器的輸出)被編碼為每字節大約8.05位,擴展大約0.5%。

為了保護您的安全, bzip2使用32位CRC來確保文件的解壓縮版本與原始版本相同。 這樣可以防止壓縮數據的腐敗,以及防止bzip2中未檢測到的錯誤(希望不太可能)。 數據損壞未被發現的機會是微觀的,每個文件處理大約有40億的機會。 但請注意,檢查是在解壓縮時發生的,所以它只能告訴你有什麼問題。 它無法幫助您恢復原始的未壓縮數據。 您可以使用bzip2recover嘗試恢復受損文件中的數據。

返回值:0表示正常退出,1表示環境問題(文件未找到,標誌無效,I / O錯誤,&c),2表示損壞的壓縮文件,3表示引起內部一致性錯誤(例如,錯誤) bzip2恐慌。

OPTIONS

-c --stdout

壓縮或解壓縮到標準輸出。

-d - 解壓縮

強制減壓。 bzip2, bunzip2bzcat實際上是相同的程序,並且根據使用哪個名稱來決定要採取什麼操作。 該標誌覆蓋該機制,並強制bzip2進行解壓縮。

-z --compress

無論調用名稱如何,-d:強制壓縮的補充。

-t --test

檢查指定文件的完整性,但不要解壓縮它們。 這確實會進行試用減壓並丟棄結果。

-f --force

強制覆蓋輸出文件。 通常情況下, bzip2不會覆蓋現有的輸出文件。 還強制bzip2打破硬鏈接到文件,否則它不會做。

bzip2通常會拒絕解壓縮沒有正確魔術字節字節的文件。 如果強制(-f),它會通過未經修改的方式傳遞這些文件。 這就是GNU gzip的行為。

-k - 保持

在壓縮或解壓縮期間保持(不要刪除)輸入文件。

-s --small

減少內存使用量,進行壓縮,解壓縮和測試。 使用修改後的算法對文件進行解壓縮和測試,每個塊字節只需要2.5個字節。 這意味著任何文件都可以在2300k的內存中解壓,儘管速度只有普通速度的一半。

在壓縮過程中,-s選擇一個200k的塊大小,這會將存儲器的使用限制在大約相同的數值,這是以壓縮比為代價的。 總之,如果你的機器內存不足(8兆字節或更少),請使用-s來表示所有內容。 請參閱下面的內存管理。

-q - 安靜

抑制不重要的警告消息。 與I / O錯誤和其他關鍵事件有關的消息不會被抑制。

-v - 詳細

詳細模式 - 顯示每個處理文件的壓縮比。 進一步,-v增加了詳細程度,從中剔除了許多主要用於診斷目的的信息。

-L --license -V --version

顯示軟件版本,許可條款和條件。

-1(或--fast)至-9(或 - 最佳)

壓縮時將塊大小設置為100 k,200 k .. 900 k。 解壓縮時無效。 請參閱下面的內存管理。 --fast和--best別名主要用於GNU gzip兼容性。 特別是,fast不會讓事情變得更快。 而且 - 只是選擇默認行為。

將所有後續參數視為文件名,即使它們以短劃線開頭。 這樣您就可以處理名稱以破折號開頭的文件,例如:bzip2 - - myfilename。

- 重複 - 快速 - 重複 - 最佳

這些標誌在0.9.5及以上版本中是多餘的。 他們在早期版本中對排序算法的行為提供了一些粗略的控制,這有時是有用的。 0.9.5及以上版本有一個改進的算法,使這些標誌無關。

重要提示:使用man命令%man )查看特定計算機上的命令使用方式。

相關文章