溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux中如何使用bzip2命令

發(fā)布時間:2022-01-21 10:09:17 來源:億速云 閱讀:114 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“Linux中如何使用bzip2命令”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習一下“Linux中如何使用bzip2命令”這篇文章吧。

bzip2命令 用于創(chuàng)建和管理(包括解壓縮)“.bz2”格式的壓縮包

Linux中如何使用bzip2命令

bzip2

將文件壓縮成bz2格式

補充說明

bzip2 采用 Burrows-Wheeler 塊排序文本壓縮算法和 Huffman 編碼方式壓縮文件。 壓縮率一般比基于 LZ77/LZ78 的壓縮軟件好得多,其性能接近 PPM 族統(tǒng)計類壓縮軟件。

命令行參數(shù)有意設(shè)計為非常接近 GNU gzip 的形式,但也不完全相同。

bzip2 從命令行讀入文件名和參數(shù)。 每個文件被名為 “原始文件名.bz2” 的壓縮文件替換。 每個壓縮文件具有與原文件相同的修改時間、 權(quán)限, 如果可能的話,還具有相同的屬主, 因此在解壓縮時這些特性將正確地恢復(fù)。 在某些文件系統(tǒng)中, 沒有權(quán)限、 屬主或時間的概念, 或者對文件名的長度有嚴格限制, 例如 MSDOS,在這種情況下,bzip2 沒有保持原文件名、 屬主、 權(quán)限以及時間的機制, 從這個意義上說,bzip2 對文件名的處理是幼稚的。

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

如果未指定文件名, bzip2 將壓縮來自標準輸入的數(shù)據(jù)并寫往標準輸出。在這種情況下, bzip2 會拒絕將壓縮結(jié)果寫往終端,因為這完全無法理解并且是沒有意義的。

bunzip2 (以及 bzip2 -d) 對所有指定的文件進行解壓縮處理。不是由 bzip2 產(chǎn)生的文件將被忽略,同時發(fā)出一個警告信息。 bzip2 按下列方式由壓縮文件名確定解壓后的文件名:

 filename.bz2    解壓成   filename
 filename.bz     解壓成   filename
 filename.tbz2   解壓成   filename.tar
 filename.tbz    解壓成   filename.tar
 anyothername    解壓成   anyothername.out

如果文件名的后綴不是下列之一: .bz2, .bz, .tbz2 或 .tbz, .bzip2 將抱怨無法確定原始文件名,并采用原文件名加 .out 作為解壓縮文件名。

在壓縮時,如果不提供文件名,bzip2 將從標準輸入讀取數(shù)據(jù),壓縮結(jié)果寫往標準輸出。

bzip2 采用 32 位 CRC 校驗碼作自我檢查,以確認解壓后的文件與原始文件相同。 這可用于檢測壓縮文件是否損壞,并防止 bzip2 中未知的缺陷(運氣好的話這種可能性非常小)。   數(shù)據(jù)損壞而未檢測到的幾率非常之小,  對于每個被處理的文件大約是四十億分之一。  檢查是在解壓縮時進行的,因此它只能說明某個地方出問題了。 它能幫助恢復(fù)原始未壓縮的數(shù)據(jù)。可以用 bzip2recover 來嘗試從損壞的文件中恢復(fù)數(shù)據(jù)。

返回值:正常退出返回 0, 出現(xiàn)環(huán)境問題返回 1 (文件未找到,非法的選項,I/O錯誤等), 返回 2 表明壓縮文件損壞,出現(xiàn)導(dǎo)致 bzip2 緊急退出的內(nèi)部一致性錯誤(例如缺陷)時返回 3。

語法

 bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ...  ]

選項

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

參數(shù)

文件:指定要壓縮的文件。

實例

壓縮指定文件filename:

 bzip2 filename
 或
 bzip2 -z filename

這里,壓縮的時候不會輸出,會將原來的文件filename給刪除,替換成filename.bz2.如果以前有filename.bz2則不會替換并提示錯誤(如果想要替換則指定-f選項,例如bzip2 -f filename;如果filename是目錄則也提醒錯誤不做任何操作;如果filename已經(jīng)是壓過的了有bz2后綴就提醒一下,不再壓縮,沒有bz2后綴會再次壓縮。

解壓指定的文件filename.bz2:

 bzip2 -d filename.bz2
 或
 bunzip2 filename.bz2

這里,解壓的時候沒標準輸出,會將原來的文件filename.bz2給替換成filename。如果以前有filename則不會替換并提示錯誤(如果想要替換則指定-f選項,例如bzip2 -df filename.bz2。

壓縮解壓的時候?qū)⒔Y(jié)果也輸出:

 $bzip2 -v filename

輸入之后,輸出如下:

 filename:  0.119:1, 67.200 bits/byte, -740.00% saved, 5 in, 42 out.

這里,加上-v選項就會輸出了,只用壓縮舉例了,解壓的時候同理bzip2 -dv filename.bz2不再舉例了。

模擬解壓實際并不解壓:

 bzip2 -tv filename.bz2

輸入之后,輸出如下:

 filename.bz2: ok

這里,-t指定要進行模擬解壓,不實際生成結(jié)果,也就是說類似檢查文件,當然就算目錄下面有filename也不會有什么錯誤輸出了,因為它根本不會真的解壓文件。為了在屏幕上輸出,這里加上-v選項了,如果是真的解壓bzip2 -dv filename.bz2則輸出的是把”ok”替換成了”done”。

壓縮解壓的時候,除了生成結(jié)果文件,將原來的文件也保存:

 bzip2 -k filename

這里,加上-k就保存原始的文件了,否則原始文件會被結(jié)果文件替代。只用壓縮舉例了,解壓的時候同理$bzip2 -dk filename.bz2不再舉例了。

解壓到標準輸出:

 bzip2 -dc filename.bz2

輸入之后,輸出如下:

 hahahhaahahha

這里,使用-c指定到標準輸出,輸出的是文件filename的內(nèi)容,不會將filename.bz2刪除。

壓縮到標準輸出:

 bzip2 -c filename
 bzip2: I won't write compressed data to a terminal.
 bzip2: For help, type: `bzip2 --help'.

這里,使用-c指定壓縮到標準輸出不刪除原有文件,不同的是,壓縮后的文件無法輸出到標準輸出。

使用bzip2的時候?qū)⑺泻竺娴目醋魑募?即使文件名以’-‘開頭):

 bzip2 -- -myfilename

這里主要是為了防止文件名中-產(chǎn)生以為是選項的歧義。

以上是“Linux中如何使用bzip2命令”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI