Linux文件打包與解壓


一、文件打包、壓縮與解壓

linux常見的打包工具zip,gzip,bzip2,tar。我們可以根據需要的打包格式相對應的使用。

1、zip命令(.zip文件)

語法:zip 壓縮名  文件名

-r選項:多個文件壓縮 

-o選項:不提示的情況下覆蓋文件;

-d選項:指定解壓縮路徑

zipinfo:查看內容

    (1)壓縮文件:zip  myfile.zip myfile
   將當前目錄下的所有文件和目錄全部壓縮成myfile.zip文件,-r表示遞歸壓縮子目錄下所有文件.

 (2)解壓文件:unzip
   unzip  -d /home/sunny myfile.zip
   把myfile.zip文件解壓到 /home/sunny/     

 (3)其他

   查看壓縮文件中的文件
      zipinfo myfile.zip      

     向壓縮文件中myfile.zip中添加rpm_info.txt文件
      zip -m myfile.zip ./rpm_info.txt


2、gzip命令(.gz文件)

gzip只能針對普通文件(regular file)進行壓縮和解壓,對於文件夾、符號鏈接等不支持。如果想把多個文件一起壓縮並打包,gzip自身辦不到的。則需要用tar命令來完成。

語法:gzip 文件名

例:把文件test1.txt打包

localhost:~ # gzip test1.txt

 

解壓之前壓縮的文件,只需加-d選項即可

localhost:~ # gzip -d test1.txt.gz

 

注:這里需要注意的是,gzip壓縮會把源文件覆蓋,這里我們可以用-c選項避免

#-c選項就是讓gzip把壓縮的內容輸出到標准輸出,而非寫入到文件中。

localhost:~ # gzip -c test1.txt > test1.txt.gz

 

gzip與tar區別:

一個是壓縮工具、一個是打包工具。當我們需要打包多個文件時,就特別能體現出tar與gzip區別。

gzip:壓縮/解壓縮工具,當有多個文件時,gzip只能進行壓縮,但不能把多個文件壓縮成一個文件,特別的凌亂,這時tar就擔任了這個角色。

tar:打包/解包工具,在gzip基礎之上,在進行多文件打包成一個文件,管理起來比較方便。

例:對test1.txt進行打包並壓縮

localhost:~ # tar -zcvf test1.txt.tar.gz test1.txt

解壓:

localhost:~ # tar -xvf test1.txt.tar.gz 

 

壓縮速度與解壓縮強度

 gzip 命令確實為用戶提供了這樣的選擇權,包含了九個壓縮級別,分別是 1、2、3、4、5、6、7、8、9:

“1 級”表示壓縮速度最快,但強度不高。
“9 級”表示壓縮強度最高,但速度較慢。
默認情況下是 6 級。

 

#我們先用“最快速”的壓縮等級(1級), 同時使用time來精准計時
localhost:~ # time gzip -1 error.log

real 0m22.322s
user 0m20.983s
sys 0m1.250s

#“最快速”壓縮等級, 耗時是22.3秒, 壓縮后的大小為99MB
localhost:~ # ls -hl error.log.gz
-rw-r--r-- 1 roc roc 99M 2月 20 14:39 error.log.gz

#然后我們再嘗試“最強”壓縮等級(9級), 同樣也使用time來精准計時
localhost:~ # time gzip -9 error.log

real 1m3.544s
user 1m2.189s
sys 0m1.256s

#“最強”壓縮等級, 耗時變長了許多, 為1分3秒, 但壓縮后的文件卻是更小了, 為70MB
localhost:~ # ls -hl error.log.gz
-rw-r--r-- 1 roc roc 70M 2月 20 14:39 error.log.gz

 

3、bzip2命令(.bz2文件)

bzip2/bunzip2(壓縮/解壓縮)

語法:bzip2  文件名

localhost:~ # bzip2 test1.txt            壓縮

localhost:~ # bunzip2 test1.txt.bz2      解壓縮

localhost:~ # bzip2 -d test1.txt.bz2      

 

多個文件壓縮 

localhost:~ # bzip2 test1.txt test2.txt test3.txt

注:gzip2壓縮時也會覆蓋源文件,-c可以避免,與gzip語法一樣

 

4、tar包管理工具簡介

TAR(Tape Archive,TAR)是Linux下的包管理工具,具有5種功能:打包、查詢、釋放、更新、追加。

格式:tar [主選項+輔助選項] [文件或目錄]

 

選項

說明

-c

創建新的tar包

-t

列出tar包文件的列表

-x

從tar包中釋放文件

-r

把備份文件追加到已備份文件的末尾

輔助選項

說明

-f

選擇文件或設備,必選項

-v

顯示命令執行的詳細信息

-z

用gzip來壓縮/解壓縮文件

-j

用bzip2來壓縮/解壓縮文件

-C

指定文件解壓后的存放路徑

對文件進行打包:tar -cf xx.tar files.txt sdb1.txt

列出tar包文件包含的文件:tar -tf xx.tar

解包到當前目錄:tar -xf xx.tar -C ./

壓縮為gzip: tar -zcf yy.gz files.txt sdb1.txt

壓縮為bzip2:tar -jcf yy.bz2 files.txt sdb1.txt

 

5、除了以上幾種打包工具,我們也可以自己添加

rar命令

下載rarlinux-x64-5.7.1.tar.gz:https://www.rarlab.com/download.htm

解壓后將rar文件到/usr/local目錄下:tar -xf rarlinux-x64-5.7.1.tar.gz -C usr/local/

然后執行以下命令

ln -s /usr/local/rar/rar /usr/local/bin/rar

ln -s /usr/local/rar/unrar /usr/local/bin/unrar

壓縮文件:rar a test.rar ./test/

列出壓縮文件:rar l test.rar

解壓文件:rar x test.rar ./  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM