Linux

是否有更智能的 tar 或 cpio 可以有效地檢索儲存在存檔中的文件?

  • June 28, 2020

tar用來歸檔一組非常大(多 GB)的bz2文件。

如果我使用tar -tf file.tar列出存檔中的文件,這需要很長時間才能完成(約 10-15 分鐘)。

同樣,cpio -t < file.cpio完成所需的時間也一樣長,加上或減去幾秒鐘。

因此,從存檔中檢索文件(tar -xf file.tar myFileOfInterest.bz2例如通過)同樣慢。

是否有一種存檔方法可以在存檔中保留一個隨時可用的“目錄”,以便可以快速檢索存檔中的單個文件?

例如,某種目錄儲存指向存檔中特定字節的指針,以及要檢索的文件的大小(以及任何其他文件系統特定的細節)。

是否有工具(或 or 的參數tarcpio可以有效地檢索存檔中的文件?

tar(以及 cpio 和 afio 以及 pax 和類似程序)是面向流的格式 - 它們旨在直接流式傳輸到磁帶或通過管道傳輸到另一個程序。雖然從理論上講,可以在文件/流的末尾添加一個索引,但我不知道有什麼版本可以做到(雖然這將是一個有用的增強)

它對您現有的 tar 或 cpio 存檔沒有幫助,但是還有另一個工具 dar(“磁碟存檔”),它確實可以創建包含此類索引的存檔文件,並且可以讓您快速直接訪問存檔中的各個文件.

如果 dar 不包含在您的 unix/linux-dist 中,您可以在以下位置找到它:

http://dar.linux.free.fr/

引用自:https://serverfault.com/questions/59795