使用 tar 與 bzip2 來建立 .tar.bz2 檔案?

使用 tar 與 bzip2 來建立 .tar.bz2 檔案?

我剛剛讀到tar可以建立.tar.bz2文件。一直以來,我都是用tar+bzip2來做到這一點。

tar我想知道使用建立存檔與使用建立存檔之間是否有區別bzip2

另外,為什麼有兩件事做同樣的事情呢?

謝謝!

答案1

GNU tar 支援 --bzip2 選項,該選項可讓您在將結果檔案寫入磁碟之前透過 bzip2 串流傳輸 tar 檔案。命令列選項支援的所有 tar 壓縮都對流資料塊進行操作,這在一般情況下並不重要,但即使使用相同的演算法,外部壓縮也可能能夠提供更好的壓縮。

例如,使用 --bzip2 使用預先定義的壓縮級別,而在未壓縮的 tarball 上運行 bzip2 使您有機會調整各種壓縮參數,並可能實現更嚴格的壓縮。此外,可以使用整個 tarball 作為輸入的操作可能能夠利用超出透過串流傳輸提供的標準大小區塊的壓縮機機會。一個很好的例子是壓縮包,它可以利用整個 tar 存檔中的冗餘,而不僅僅是當前資料區塊中的冗餘。

除非空間非常寶貴,否則為了簡單起見,通常最好使用內建壓縮選項。內建選項提供了高度的便利性以及速度和壓縮之間的合理權衡。但是,您的里程肯定會有所不同。

答案2

我想知道使用 tar 建立檔案與使用 bzip2 之間是否有區別?

Bzip2 是一種壓縮工具…而且是一個非常好的壓縮工具。

tar 是一種歸檔(儲存)工具…也許是最成功和最強大的工具。

另外,為什麼有兩件事做同樣的事情呢?

tar 早於 bzip,我認為甚至是原始的 zip。

他們只在某些有限的情況下做「同樣的事情」。

也許您沒有完全理解 tar 是什麼?

Tar 用於歸檔(磁帶歸檔器),它的作用不僅僅是壓縮一組檔案。

<quote man page>
DESCRIPTION
     Tar stores and extracts files from a tape or disk archive.
 </quote>

因此您可以新增、提取、減去、更新已存檔的內容。 (很多情況下無需拆包)

它是在遙遠的英雄時代演變而來的經典工具,當時 64K 是大量內存,串流媒體基於(逐個字元)的儲存是一種規範。 (如磁帶)。

tar 可以做一些事情,例如指示一些(名義上是人類)操作員將磁帶或線軸向前/向後更改到許多米“磁帶”上的正確範圍和位置。

所有這些功能仍然有用,即使實際的硬體早已不復存在,這些概念仍然被使用。尤其是在備份世界中。

一般來說,它知道結構以及歸檔檔案系統的狀態,並且可以或多或少像真正的即時檔案系統一樣更改它或從中讀取。 (當然,它只是被壓縮、記錄/註冊並保存在某個地方)

同步具有一些(大部分)功能,但具有圍繞差異的巧妙演算法。

另請參見帕克斯。

Bzip 是個出色的工具最多case 的壓縮程度比 zip/gzip 更高。

作為通用壓縮工具,它高效且相當強大。它的重點是壓縮。

隨著時間的推移,壓縮檔案逐漸被稱為存檔,因為這是大多數檔案的共同點。

哦,最後 tar 也有本機基本(不可滾動)壓縮。您可以使用 -z 或 -j 開關來選擇使用特定的壓縮演算法。 (嗯或也許也是?)

點選 gzip tar bzip2 pax rsync 的手冊頁:)

只需滾動一下 tar 文件就應該給你這個想法。

答案3

tar cf - 檔案檔案目錄cat list| tar cf壓縮 > 檔案.tar.Z 壓縮 -d 檔案.tar.Z |焦油 tvf -

您可以將 compress 替換為您選擇的 gzip、bzip2、lzop。

將最後一個命令中的 v 替換為 x 以在列出時提取檔案。

相關內容