linux下文件的打包和壓縮


文章來源:linux下文件的打包和壓縮

一、文件壓縮的原理

簡單來說,壓縮技術就是在存儲時將文件里面沒有使用的空間利用起來,主要有以下兩種情況。

  1. 存儲時去掉沒有用到的空間。假設我們只是存儲一個數字 1 ,二進制表示數字1只需1個bit是1就可以表示(1=1*2^0),但是為了滿足操作系統對數據的存取要求,只能通過byte的形態來記錄。1 byte = 8 bits,所以每個byte當中會有8個bits,而其他的7個bits將自動的被填上0,其實那7個bits是沒有用到的。

  2. 另外一種壓縮技術是將重復的數據進行統計記錄。舉例來說,如果數據為[1111…]共有100個1,那么記錄為“100個1”也能精簡文件的大小。

二、linux常見的壓縮指令

Linux支持的壓縮指令可以通過不同的后綴名進行區分,常見的擴展名:

  • .zip:zip程序壓縮的文件
  • .gz:gzip程序壓縮的文件
  • .bz2:bzip2程序壓縮的文件
  • .xz:xz程序壓縮的文件
  • .tar:tar程序打包的數據,並沒有壓縮過
  • .tar.gz:tar程序打包的數據,經過gzip壓縮過
  • .tar.bz2:tar程序打包的數據,經過bzip2壓縮過
  • .tar.xz:tar程序打包的文件,經過xz壓縮過

三、常用實例

以把/etc中內容打包壓縮到/tmp/etc.*,然后在解壓回/etc為例

1、tar命令

打包:tar -cvf /tmp/etc.tar /etc

解包:tar -xvf /tmp/etc.tar /etc 

常用參數 :

  • -c :建立壓縮檔案(create 的意思);

  • -x :解壓檔案!

  • -v : 顯示所有過程 ,執行過程會打印在屏幕上!

  • -f : 使用檔案名字,這個參數是最后一個參數,后面只能接檔案名。

2、zip命令

壓縮:zip -r /tmp/etc.zip /etc 

解壓:unzip /tmp/etc.zip /etc
  • -r: 將指定的目錄下的所有子目錄以及文件一起處理

3、gz命令

壓縮:tar -czvf /tmp/etc.tar.gz /etc 

解壓:tar -xzvf /tmp/etc.tar.gz /etc  
  • -z:使用gzip命令對文件進行壓縮或解壓縮。

4、bz2命令

壓縮:tar -cjvf /tmp/etc.tar.bz2 /etc 

解壓:tar -xjvf /tmp/etc.tar.bz2 /etc  
  • -j:使用bz2命令對文件進行壓縮或解壓縮。

5、xz命令(必須分兩步)

打包:tar -cvf /tmp/etc.tar /etc   
壓縮:xz -z /tmp/etc.tar #將 /tmp/etc.tar壓縮成為 /tmp/etc.tar.xz

解壓縮:xz -d etc.tar.xz #將 etc.tar.xz解壓成 etc.tar
解包:tar -xvf etc.tar
  • -z:使用xz命令對文件進行壓縮操作。

  • -d:使用xz命令對文件進行解壓縮操作。

以上命令均可以將多個文件夾或文件打包壓縮到一個文件中

總結:

沒有特殊要求推薦使用bz2命令,它是速度壓縮比都比較折中的命令,如果想要快速壓縮文件,可以使用gz命令,如果追求最高的壓縮比,可以使用xz命令


免責聲明!

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



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