提取 POSIX 檔案

無限制 作業。檔案大小可達 2.5GB。免費,永遠免費。

私密與安全

一切都在您的瀏覽器中進行。您的檔案絕不接觸我們的伺服器。

極速

無需上傳,無需等待。在您拖放檔案的瞬間即可轉換。

完全免費

無需帳戶。無隱藏費用。無檔案大小限制花招。

什麼是 POSIX 格式?

POSIX

POSIX 檔案格式,也稱為「ar」格式,是一種用於在類 Unix 作業系統上建立和管理程式庫檔案的檔案格式。此格式已由 IEEE 在 POSIX.1-1988 規格中標準化,並自此廣泛採用於各種平台。ar 格式允許將多個檔案打包成單一檔案,以利於儲存、分發和管理。

POSIX 檔案的結構包含一個全域標頭,後接一系列的檔案成員。每個成員代表已新增至檔案的檔案。全域標頭是一個簡單的 ASCII 字串,用於識別檔案為 ar 檔案。它包含字元「`!<arch> `」,其中「` `」代表換行字元。此標頭總是出現在檔案檔案的開頭。

在全域標頭之後,檔案包含一系列的檔案成員。每個成員由檔案標頭和檔案資料本身組成。檔案標頭是一個固定大小的結構,包含檔案的元資料,例如其名稱、修改時間戳記、擁有者和群組 ID、檔案模式和大小。標頭會以空白填充,以維持 60 位元的固定大小。

檔案標頭以檔案名稱開頭,儲存為以 Null 結束的 ASCII 字串。檔案名稱限制為 16 個字元,如果實際檔案名稱較長,則會被截斷。如果檔案名稱短於 16 個字元,則會以空白填充。在檔案名稱之後,標頭包含檔案修改時間戳記,儲存為十進位 ASCII 字串。時間戳記代表自 Unix 紀元(1970 年 1 月 1 日)以來的秒數。

接下來,檔案標頭包含檔案的擁有者和群組 ID,儲存為十進位 ASCII 字串。這些 ID 用於檔案權限和擁有權管理。檔案模式也儲存在標頭中,為八進位 ASCII 字串,代表檔案的權限和類型。模式表示檔案是常規檔案、目錄、符號連結,或具有任何特殊權限。

檔案大小儲存在標頭中,為十進位 ASCII 字串,表示標頭之後檔案資料中的位元組數。如果檔案大小不是偶數,則會在檔案資料中新增一個額外的填充位元組,以確保適當對齊。

在檔案標頭之後,實際檔案資料儲存在檔案中。資料以原樣寫入,沒有任何額外的格式化或壓縮。如果檔案大小為奇數,則會新增一個額外的填充位元組以維持對齊。

建立 ar 檔案的過程涉及將每個成員檔案的檔案標頭和資料串接成單一檔案檔案。ar 工具程式通常在類 Unix 系統中找到,用於建立、修改和從 ar 檔案中提取檔案。在建立檔案時,ar 工具程式會新增全域標頭,後接每個成員檔案的檔案標頭和資料。

從 ar 檔案中提取檔案涉及讀取全域標頭以驗證檔案格式,然後掃描檔案以找到所需的檔案成員。ar 工具程式會讀取檔案標頭以確定檔案名稱、大小和檔案中的偏移量。然後,它會根據儲存在標頭中的大小和位置資訊提取檔案資料。

ar 格式的主要使用案例之一是建立靜態程式庫檔案。靜態程式庫是物件檔案的集合,在編譯時直接連結到可執行檔中。ar 格式允許將多個物件檔案打包成單一程式庫檔案,然後可以與其他物件檔案或程式庫連結以建立最終的可執行檔。

ar 格式也支援建立精簡檔案,這些檔案僅包含對外部檔案的參考,而不是檔案資料本身。精簡檔案對於縮小檔案檔案的大小以及允許更有效率地儲存和分發大量檔案集合很有用。

儘管 ar 格式廣泛使用和支援,但它有一些限制。固定大小的檔案標頭限制了檔案名稱的長度和可以儲存在檔案中的最大檔案大小。此外,ar 格式不提供任何內建的壓縮或加密,這對於某些使用案例可能是必要的。

儘管有其限制,POSIX 檔案格式仍然是一種在類 Unix 系統上打包和管理檔案集合的簡單且有效率的方法。它的標準化和廣泛採用使其成為建立靜態程式庫、分發軟體套件和封存資料的可靠選擇。

總之,POSIX 檔案格式是一種用於在類 Unix 作業系統上建立和管理程式庫檔案的檔案格式。它包含一個全域標頭,後接一系列的檔案成員,每個成員包含一個檔案標頭和檔案資料。ar 工具程式用於建立、修改和從 ar 檔案中提取檔案,而此格式通常用於建立靜態程式庫檔案和打包檔案集合。儘管它有一些限制,但 ar 格式仍然是一種在類 Unix 系統上管理檔案的簡單且廣泛支援的方法。

檔案壓縮透過減少冗餘,讓相同的資訊佔用更少的位元。可壓縮的上限受資訊理論約束:對於無失真壓縮,上界是信源熵(參見香農的信源編碼定理以及他於 1948 年發表的《通信的數學理論》)。對於有失真壓縮,碼率與感知品質之間的權衡由率失真理論描述。

兩大支柱:建模與編碼

多數壓縮器分兩個階段。首先,模型會預測或揭露資料中的結構。接著,編碼器把這些預測轉成近乎最優的位元型態。經典的建模家族是 Lempel–Ziv:LZ77 (1977)及 LZ78 (1978) 會偵測重複子字串並輸出參照而非原始位元組。編碼面則由霍夫曼編碼(見原始論文1952)為較常出現的符號分配更短的碼字。算術編碼範圍編碼再進一步逼近熵極限,而現代的非對稱數值系統(ANS)則用查表方式取得相似壓縮率。

常見格式怎麼做

DEFLATE(被 gzipzlibZIP 採用)把 LZ77 和霍夫曼編碼結合。其規格完全公開:DEFLATERFC 1951、zlib 封裝RFC 1950以及 gzip 檔案格式RFC 1952。Gzip 針對串流設計並明確不提供隨機存取。PNG 影像則把 DEFLATE 規範為唯一的壓縮方式(視窗最多 32 KiB),詳見 PNG 規格「Compression method 0… deflate/inflate… at most 32768 bytes」W3C/ISO PNG 第二版

Zstandard (zstd): 針對高壓縮率與極快解壓而設計的通用壓縮器。格式記載於RFC 8878(以及HTML 鏡像)和 GitHub 上的參考規格文件。與 gzip 類似,基本框架並不追求隨機存取。zstd 的絕招是字典:從語料擷取的小樣本能大幅改善許多小型或相似檔案的壓縮(參閱python-zstandard 字典文件Nigel Tao 的示例)。各實作同時支援「非結構化」與「結構化」字典(討論)

Brotli: 為網頁內容(如 WOFF2 字體、HTTP)優化,結合靜態字典與類 DEFLATE 的 LZ+熵編碼核心。規格載於RFC 7932,文件同時指出滑動視窗為 2WBITS-16,WBITS 介於 [10, 24](1 KiB-16 B 至 16 MiB-16 B),並且不嘗試隨機存取。Brotli 常在網頁文字上優於 gzip,解碼也相當快速。

ZIP 容器: ZIP 是一種檔案封存格式,可存放使用多種壓縮法(deflate、store、zstd 等)的項目。權威規格是 PKWARE 的 APPNOTE(參見APPNOTE 入口托管副本以及美國國會圖書館的概覽ZIP File Format (PKWARE)/ZIP 6.3.3)。

常見問題解答

什麼是檔案壓縮?

檔案壓縮是一個減少檔案或檔案群大小的過程,通常用於節省儲存空間或加速網路傳輸。

檔案壓縮是如何運作的?

檔案壓縮運作原理,透過識別並移除數據中的冗餘資訊。它使用演算法將原始數據編碼在較小的空間裡。

檔案壓縮有什麼類型?

兩種主要的檔案壓縮類型是無失真及有失真壓縮。無失真壓縮可以完美地恢復原始檔案,然而有失真壓縮在一些資料品質的損失下能得到更大的壓縮程度。

請給出一個檔案壓縮工具的範例?

一個常見的檔案壓縮工具範例是WinZip,它支援多種壓縮格式包括ZIP與RAR。

檔案壓縮會影響檔案質量嗎?

在無失真壓縮中,質量保持不變。然而,在有失真壓縮中,可能會有顯著的質量下降,因為它刪除了一些較不重要的數據以便更大程度地減少檔案大小。

檔案壓縮安全嗎?

是的,相對於資料的完整性來說,檔案壓縮是安全的,尤其是無失真壓縮。然而,如同所有檔案,被壓縮的檔案也可能受到惡意軟體或病毒的攻擊,所以總是需要有專業的安全軟體以保護。

什麼類型的檔案可以壓縮?

幾乎所有種類的檔案都可以被壓縮,包括文字檔案、圖像、音訊、視頻和軟體檔案。然而,壓縮程度可以因檔案類型而有顯著的不同。

什麼是ZIP檔?

ZIP檔是一種使用無失真壓縮以減少一個或多個檔案大小的檔案格式。在ZIP檔中的多個檔案被有效地打包為單一的檔案,這也讓分享變得更加容易。

我可以壓縮一個已經壓縮過的檔案嗎?

技術上可行,儘管額外的大小減少可能非常小或甚至適得其反。壓縮一個已經壓縮過的檔案有時可能會增加其大小,原因在於壓縮演算法所增加的metadata。

我該如何解壓壓縮的檔案?

解壓壓縮的檔案,通常需要一個解壓縮或解zip的工具,像是WinZip或7-Zip。這些工具可以从壓縮格式中提取原始檔案。