Linux 命令(118)—— bzip2 命令

1.命令簡介

bzip2 用來壓縮和解壓縮文件,是在 Linux 系統中經常使用的一個對文件進行壓縮和解壓縮的命令,採用 Burrow-Wheeler 塊排序文本壓縮算法和 Huffman 編碼將文件壓縮爲後綴爲 .bz2 的 bzip2 文件。壓縮率一般比基於 LZ77/LZ78 的壓縮軟件好得多,其性能接近 PPM 族統計類壓縮軟件。

bzip2 不僅可以用來壓縮大的、較少使用的文件以節省磁盤空間,還可以和 tar 命令一起使用完成對文件的打包和壓縮。減少文件大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網絡傳輸文件時,可以減少傳輸的時間。

2.命令格式

bzip2 [OPTIONS] [FILES...]

bzip2 命令行參數有意設計爲接近 GNU gzip 的形式,但也不完全相同。bzip2 從命令行讀入選項和文件名。 每個文件被名爲 “原始文件名.bz2” 的壓縮文件替換。 每個壓縮文件具有與原文件相同的修改時間、 權限, 如果可能的話, 還具有相同的屬主, 因此在解壓縮時這些特性將被正確地恢復。

bzip2 在缺省情況下不覆蓋已有的文件。 如果想覆蓋已有的文件,要指定 -f 選項。

3.選項說明

-c, --stdout
    將數據壓縮或解壓縮輸出至標準輸出
-d, --decompress
    強制解壓縮。 bzip2, bunzip2 以及 bzcat 實際上是同一個程序,進行何種操作將根據程序名確定。 指定該選項後將不考慮這一機制,強制 bzip2 進行解壓縮
-z, --compress
	-d 選項的補充:強制進行壓縮操作,而不管執行的是哪個程序
-t, --test
    檢查指定文件的完整性,但並不對其解壓縮。 實際上將對數據進行實驗性的解壓縮操作,而不輸出結果
-f, -force
    強制覆蓋輸出文件。通常 bzip2 不會覆蓋已經存在的文件。該選項還強制 bzip2 打破文件的硬連接,缺省情況下 bzip2 不會這麼做。
-k, --keep
    在壓縮或解壓縮時保留輸入文件(不刪除這些文件)
-s, --small
    在壓縮、解壓縮及檢查時減少內存用量。 採用一種修正的算法進行壓縮和測試, 每個數據塊僅需要 2.5 個字節。 這意味着任何文件都可以在 2300K 的內存中進行解壓縮, 儘管速度只有通常情況下的一半。在壓縮時,-s 將選定 200K 的塊長度,內存用量也限制在 200K 左右, 代價是壓縮率會降低。 總之,如果機器的內存較少(8MB 或更少), 可對所有操作都採用 -s 選項
-q, --quiet
    壓制不重要的警告信息。屬於 I/O 錯誤及其它嚴重事件的信息將不會被壓制
-v, --verbose
    詳盡模式——顯示每個被處理文件的壓縮率。 命令行中更多的 -v 選項將增加詳細的程度, 使 bzip2 顯示出許多主要用於診斷目的信息
-L, --license, -V, --version
	顯示顯示軟件版本、許可證條款及分發條件
-1 (or --fast) to -9 (or --best)
    在壓縮時將塊長度設爲 100 k、200 k ... 900 k。 對解壓縮沒有影響
--
    將所有後面的命令行變量看作文件名,即使這些變量以減號 - 打頭。 可用這一選項處理以減號 - 打頭的文件名, 例如:bzip2 -- -myfilename
--repetitive-fast, --repetitive-best
    這些選項在 0.9.5 及其以上版本中是多餘的。 在較早的版本中,這兩個選項對排序算法的行爲提供了一些粗糙的控制,有些情況下很有用。 0.9.5 及其以上版本採用了改進的算法而與這些選項無關

4.常用示例

(1)不保留原文件壓縮。

bzip2 /etc/passwd

壓縮後 /etc/passwd 將變爲 /etc/passwd.bz2。

(2) 保留原文件壓縮。

bzip2 -k /etc/passwd
# 或
bzip2 -c /etc/passwd > /etc/passwd.bz2

(3)壓縮時顯示指令執行過程。

bzip2 -v /etc/passwd
/etc/passwd:  2.256:1,  3.546 bits/byte, 55.67% saved, 1552 in, 688 out.

(4)解壓 .bz2 文件,不保留原文件。

bzip2 -d /etc/passwd.bz2

(5)解壓 .bz2 文件,保留原文件。

bzip2 -dk /etc/passwd.bz2
# 或
bzip2 -dc /etc/passwd.bz2 > /etc/passwd

(6)測試.bz2壓縮文件的完整性,實際上不解壓。

bzip2 -tv /etc/passwd.bz2
/etc/passwd.bz2: ok

參考文獻

[1] bzip2(1) manual
[2] Linux 命令手冊.bzip2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章