Tar
bsdtar 和 GNU tar 有什麼區別?
我一直使用 GNU
tar
。但是,我看到的所有 GNU/Linux 發行版都bsdtar
在它們的儲存庫中發布。我什至看到它預設安裝在一些 IIRC 中。我確信 Arch GNU/Linux 需要它作為basedevel
(也許base
,但我不確定)的一部分,正如我在 PKGBUILDs 中看到的那樣。為什麼要使用
bsdtar
而不是 GNUtar
?有什麼優勢?
Ubuntu
bsdtar
實際上是與libarchive
;捆綁在一起的 tar 實現。那應該和古典區別開來bsdtar
。一些 BSD 變體確實libarchive
用於他們的 tar 實現,例如 FreeBSD。
GNUtar
確實支持其他 tar 變體和自動壓縮檢測。由於視覺化粘貼了來自 Ubuntu 的簡介,其中有一些特定於以下內容的內容
libarchive
:
libarchive
顧名思義,它是一個庫,與古典bsdtar
和GNUtar
那種方式都不同。libarchive
無法讀取一些較舊的模糊 GNU tar 變體,最值得注意的是在 base64 中對某些標頭進行編碼,因此 tar 文件將是 7 位乾淨的 ASCII(這是 1.13.6-1.13.11 的情況,並在 1.13.12 中更改,該程式碼僅在 tar 中正式使用了 2 週)libarchive
’sbsdtar
將讀取非 tar 文件(例如 zip、iso9660、cpio),但經典 bsdtar 不會。現在我們已經
libarchive
讓路了,它主要歸結為 classic 支持的內容bsdtar
。您可以在此處自己查看手冊頁:
- GNU 焦油 (1)
- FreeBSD tar(1) - 基於 libarchive
- NetBSD 焦油 (1)
- OpenBSD 焦油(1)
- Standard/Schily tar(1) - 最古老的免費 tar 實現,沒有任何其他繼承
- busybox (1) - BusyBox 的迷你 tar 實現,在嵌入式系統中很常見
在您最初的問題中,您詢問了 classic 的優勢是什麼
bsdtar
,我不確定是否真的有。唯一真正重要的是您是否正在嘗試編寫需要在所有系統上執行的 shell 腳本;您需要確保您傳遞給tar
的內容在所有變體中都有效。
GNUtar
,libarchive
’s ,bsdtar
classic和’s當然是大多數時候會遇到的 tar 實現,但我敢肯定還有其他實現(例如早期的 QNX)。//是功能最豐富的,但在許多方面它們早已偏離了原始標準(可能是為了更好)。bsdtar``star``BusyBox``tar``libarchive``GNUtar``star