提取 CPIO 檔案
拖放 或 點擊選擇
私密與安全
一切都在您的瀏覽器中進行。您的檔案絕不接觸我們的伺服器。
極速
無需上傳,無需等待。在您拖放檔案的瞬間即可轉換。
完全免費
無需帳戶。無隱藏費用。無檔案大小限制花招。
什麼是 CPIO 格式?
CPIO 封存檔
CPIO(複製輸入和輸出)歸檔格式是一種用於在 Unix 和類 Unix 作業系統上歸檔和解壓縮檔案的檔案格式。它最初於 1980 年代初期作為 UNIX System V 作業系統的一部分開發,並從此成為在各種平台上歸檔和分發檔案的標準格式。
CPIO 格式旨在簡單且有效率,允許建立包含多個檔案和目錄的歸檔。它支援二進位和 ASCII 檔案格式,使其與廣泛的系統和應用程式相容。
CPIO 歸檔包含一系列檔案標頭,後接檔案資料。每個檔案標頭都包含有關檔案的元資料,例如其名稱、大小、擁有權、權限和修改時間。檔案資料儲存在標頭之後,下一個檔案標頭緊接在資料之後。
CPIO 標頭格式隨著時間演進,不同的版本支援不同的功能和限制。最常見的標頭格式是二進位標頭格式和 ASCII 標頭格式,也稱為「新」標頭格式。
二進位標頭格式使用固定大小的結構來儲存檔案元資料,每個欄位佔用特定數量的位元組。此格式更緊湊且有效率,但由於潛在的位元序和對齊問題,在不同系統之間的可移植性較低。
ASCII 標頭格式在 SVR4(System V Release 4)中引入,使用可變長度結構,其中 ASCII 編碼的欄位以換行符號分隔。此格式更易於人類閱讀和移植,但在空間和處理方面效率較低。
若要建立 CPIO 歸檔,請使用「cpio」指令加上「-o」(輸出)選項,後接所需的格式和要包含的檔案或目錄清單。例如,「cpio -o -H newc < file_list > archive.cpio」會使用 ASCII 標頭格式建立歸檔,從「file_list」中讀取檔案清單,並將歸檔寫入「archive.cpio」。
若要從 CPIO 歸檔中解壓縮檔案,請使用「cpio」指令加上「-i」(輸入)選項,後接所需的格式和任何其他選項。例如,「cpio -i -d < archive.cpio」會從「archive.cpio」中解壓縮檔案,並建立任何必要的目錄。
CPIO 歸檔可以串接以建立包含多組檔案的較大歸檔。這對於分發軟體套件或建立備份歸檔很有用。若要串接歸檔,只需使用類似「cat archive1.cpio archive2.cpio > combined.cpio」的指令 將一個歸檔附加到另一個歸檔即可。
CPIO 歸檔也可以使用各種壓縮演算法(例如 gzip、bzip2 或 xz)進行壓縮,以減小其大小。壓縮歸檔通常具有表示壓縮方法的檔案副檔名,例如 gzip 壓縮歸檔的「.cpio.gz」。
CPIO 格式的優點之一是它能夠保留檔案權限、擁有權和時間戳記,使其適合建立檔案階層的精確副本。但是,它不支援加密、完整性檢查或多卷歸檔等功能,這些功能在較進階的歸檔格式(例如 tar)中可用。
儘管 CPIO 格式簡單,但它已在 Unix 和 Linux 環境中廣泛使用數十年。它通常與其他工具(例如「find」或「rpm」)結合使用,以建立軟體套件、initramfs 映象或備份歸檔。
近年來,CPIO 格式已在很大程度上被更現代且功能更豐富的歸檔格式(例如 tar 和 ZIP)所取代。然而,它仍然是 Unix 歷史的重要組成部分,並且仍用於某些情況,特別是在嵌入式系統和低階系統工具中。
在使用 CPIO 歸檔時,請務必注意與不受信任的歸檔相關的潛在安全風險。從歸檔中解壓縮檔案可能會覆寫現有檔案或建立具有意外權限的檔案,從而導致安全漏洞。建議在安全環境中解壓縮歸檔,並在使用前仔細檢閱內容。
總之,CPIO 歸檔格式是一種在 Unix 和類 Unix 系統上歸檔和解壓縮檔案的簡單且有效率的方法。儘管它可能缺少現代歸檔格式的一些進階功能,但它仍然是某些情況下的有用工具,並且是 Unix 歷史的重要組成部分。了解 CPIO 格式及其用法對於使用基於 Unix 的系統的系統管理員、開發人員和愛好者來說非常有價值。
檔案壓縮透過減少冗餘,讓相同的資訊佔用更少的位元。可壓縮的上限受資訊理論約束:對於無失真壓縮,上界是信源熵(參見香農的信源編碼定理以及他於 1948 年發表的《通信的數學理論》)。對於有失真壓縮,碼率與感知品質之間的權衡由率失真理論描述。
兩大支柱:建模與編碼
多數壓縮器分兩個階段。首先,模型會預測或揭露資料中的結構。接著,編碼器把這些預測轉成近乎最優的位元型態。經典的建模家族是 Lempel–Ziv:LZ77 (1977)及 LZ78 (1978) 會偵測重複子字串並輸出參照而非原始位元組。編碼面則由霍夫曼編碼(見原始論文1952)為較常出現的符號分配更短的碼字。算術編碼與範圍編碼再進一步逼近熵極限,而現代的非對稱數值系統(ANS)則用查表方式取得相似壓縮率。
常見格式怎麼做
DEFLATE(被 gzip、zlib 與 ZIP 採用)把 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。這些工具可以从壓縮格式中提取原始檔案。