文章插圖

文章插圖
一、壓縮介紹
現在這個時代電子信息發展迅猛,數據量越來越龐大,小米10手機攝像頭技術都達到1億像素;2021年9月,三星甚至提出2億像素的傳感器技術 。因此,壓縮數據成為數據存儲和傳輸中用于降低成本和時間的關鍵技術 。
壓縮技術又分為有損壓縮與無損壓縮兩類,兩者的主要區別是:有損壓縮還原時跟原始信息不是完全一樣,但是不影響使用,比如音頻、圖片、視頻類信息;無損壓縮還原時跟原始信息完全一樣,比如本文要介紹的常用壓縮軟件RAR,Zip等壓縮方法 。
對于表二類似“xxx.tar.gz”等格式的文件,是Linux下的一種文件格式,生成該格式文件分為兩個步驟,(1)、xxx文件打包為xxx.tar;(2)、xxx.tar壓縮為xxx.tar.gz 。下面大概介紹Linux下tar打包與gz、bz2等壓縮工具的使用 。
二、Linux打包tar
由于Linux中的很多壓縮程序只能針對一個文件進行壓縮,因此如果包含許多文件,則需要將所有文件打包為一個文件,然后再壓縮 。
2.1、tar文件結構
Tar指令只用于多文件打包,并不壓縮文件,因此打包后的文件并沒有減小,反而由于在打包時會在每個文件頭加入512字節的tar頭部信息,使得打包后的文件略微變大 。比如當前有文件a1.c、a2.c、a3.c,每個文件100k,打包后文件的文件結構如下圖所示:
2.2、tar_header頭部結構
tar_header為512字節的塊結構,保存后面的文件信息,tar源碼的tar.h文件中該header結構如下圖所示,該header結構剛好是一個塊大小,即512字節每個塊 。
鏈接:https://pan.baidu.com/s/1T34dYxBRWKYE8jmFvv_2aw
提取碼:ppw2
tar打包函數入口為create_archive(),在源碼文件create.c中 。
tar 命令用于打包操作時,該命令的基本格式為:tar [選項] 源文件或目錄 。tar命令常用的選項及各自的含義如下圖所示 。
通過UltraEdit打開上面tar命令打包生成的aTar.tar文件,可以看到aTar.tar文件格式為:首先是a1.txt的tar_header信息,然后是a1.txt的內容;接著是a2.txt的tar_header信息,然后是a2txt的內容 。
(1)、第一塊:從地址0x00000000h位置到0x00000200h之間(共512字節)是a1.txt的tar_header信息:
a>、最開始的位置存儲name,大小為100字節,內容為61 31 2E 74 78 74 00,即為“a1.txt”;
b>、后面是mode字段內容為30 30 30 30 36 34 34 00,即為“0000644”,表示a1.txt文件的操作權限,與ls命令查詢a1.txt文件權限一致 。
f>、uname與gname為當前linux登錄用戶名與組名,即kevin 。
(2)、第二塊:從地址0x00000200h位置到0x00000400h之間(共512字節)是a1.txt的內容,雖然a1.txt的內容為27字節,但是塊大小為512,不足地方補0 。
三、Linux壓縮至gz、bz2、z格式
Linux下文件壓縮屬于無損壓縮,解壓縮還原時必須和原文件一致,否則會導致程序運行錯誤;其基本原理為,通過查找文件內的重復字節,建立一個相同字節的詞典文件,并用一個代碼表示 。比如如下文件:
當然壓縮算法遠比這個復雜,Linux下的壓縮工具常用的有GNU組織開發的gzip(.gz)、壓縮能力更強的bzip2(.bz2)、比較古老的壓縮指令compress(.Z)、以及最新的提供最佳壓縮率的XZ(.xz) 。
這些壓縮命令只能用來壓縮文件,不能壓縮目錄,即便指定了目錄,也只能壓縮目錄內的所有文件;同時只能壓縮單個文件,因此通常與tar打包命令一起使用,在tar打包命令中加入如下選項即可調用對應的壓縮命令進行壓縮:
在tar指令中加入‘-z’選項,調用gzip進行壓縮 。
3.2、bzip2壓縮
在tar指令中加入‘-j’選項,調用bzip2進行壓縮 。
3.3、xz壓縮
在tar指令中加入‘-J’選項,調用xz進行壓縮 。
3.4、compress壓縮
現在新的Linux系統都沒有安裝ncompress壓縮工具,需要先安裝:
3.5、其他壓縮工具
Windows下常用的壓縮格式zip與rar在Linux下也是支持的 。
(1)、Linux下提供了zip和unzip程序,zip是壓縮程序,unzip是解壓程序;
【word怎樣壓縮文件大小 ppt怎樣壓縮文件大小】(2)、linux下處理.rar文件,需要安裝RAR for Linux,如下指令:# tar -xzpvf rarlinux-3.2.0.tar.gz# cd rar# make安裝后有rar和unrar這兩個程序,rar是壓縮程序,unrar是解壓程序 。
- 成功男人怎樣挖墻腳 挖墻腳怎么挖
- 沒有挽回不了的愛情 無法挽回的愛情是怎樣的
- 網絡直播如何掙錢要具備哪些條件 網絡直播怎樣掙錢
- 梁博現在發展得怎樣 梁博為什么火不起來
- 裝修必須避開的風水禁忌 怎樣裝修才會財源廣進
- 怎樣在網上賺錢快 網上怎樣掙錢快
- 如何快速掙錢致富 如何致富賺錢怎樣才能致富
- 冬瓜粉絲湯的做法大全是怎樣的
- 清燉鴨湯怎樣做不腥
- 最簡單芝麻片做法是怎樣的
