Tar

bsdtar 和 GNU tar 有什麼區別?

  • August 16, 2021

我一直使用 GNU tar。但是,我看到的所有 GNU/Linux 發行版都bsdtar在它們的儲存庫中發布。我什至看到它預設安裝在一些 IIRC 中。我確信 Arch GNU/Linux 需要它作為basedevel(也許base,但我不確定)的一部分,正如我在 PKGBUILDs 中看到的那樣。

為什麼要使用bsdtar而不是 GNU tar?有什麼優勢?

請注意,我是問BSD 和 GNU/Linux 使用者空間之間的主要區別是什麼的人?.

Ubuntubsdtar實際上是與libarchive;捆綁在一起的 tar 實現。那應該和古典區別開來bsdtar。一些 BSD 變體確實libarchive用於他們的 tar 實現,例如 FreeBSD。

GNUtar確實支持其他 tar 變體和自動壓縮檢測。

由於視覺化粘貼了來自 Ubuntu 的簡介,其中有一些特定於以下內容的內容libarchive

  1. libarchive顧名思義,它是一個庫,與古典bsdtarGNUtar那種方式都不同。
  2. libarchive無法讀取一些較舊的模糊 GNU tar 變體,最值得注意的是在 base64 中對某些標頭進行編碼,因此 tar 文件將是 7 位乾淨的 ASCII(這是 1.13.6-1.13.11 的情況,並在 1.13.12 中更改,該程式碼僅在 tar 中正式使用了 2 週)
  3. libarchive’sbsdtar將讀取非 tar 文件(例如 zip、iso9660、cpio),但經典 bsdtar 不會。

現在我們已經libarchive讓路了,它主要歸結為 classic 支持的內容bsdtar

您可以在此處自己查看手冊頁:

在您最初的問題中,您詢問了 classic 的優勢是什麼bsdtar,我不確定是否真的有。唯一真正重要的是您是否正在嘗試編寫需要在所有系統上執行的 shell 腳本;您需要確保您傳遞給tar的內容在所有變體中都有效。

GNUtar, libarchive’s , bsdtarclassic和’s當然是大多數時候會遇到的 tar 實現,但我敢肯定還有其他實現(例如早期的 QNX)。//是功能最豐富的,但在許多方面它們早已偏離了原始標準(可能是為了更好)。bsdtar``star``BusyBox``tar``libarchive``GNUtar``star

引用自:https://unix.stackexchange.com/questions/101561