linux 打包命令


部分資料來源:

  1. 鳥哥的 Linux 私房菜
  2. Linux下文件的打包、解壓縮指令

gzip、bzip2

zip可以壓縮產生后綴為 .gz 的壓縮文件,也可以用於解壓gzip、compress等程序壓縮產生的文件。

基礎格式: gzip [Options] file1 file2 file3  
  指令選項:(默認功能為壓縮)  
  -c       //將輸出寫至標准輸出,並保持原文件不變  
  -d       //進行解壓操作  
  -v       //輸出壓縮/解壓的文件名和壓縮比等信息  
  -digit     //digit部分為數字(1-9),代表壓縮速度,digit越小,則壓縮速度越快,但壓縮效果越差,digit越大,則壓縮速度越慢,壓縮效果越好。默認為6.  

  注意,使用 gzip 指令壓縮/解壓文件均會使得源文件消失,即源文件會被直接解壓/壓縮而不保留備份。若想要保留原文件可以使用 -c 參數結合數據流重定向操作(見下例)。

gzip exp1.txt exp2.txt     //分別將exp1.txt和exp2.txt壓縮,且不保留原文件。注意對於多個文件參數是將多個文件分別進行壓縮,而不是壓縮在一起。參考下文 tar 指令。

gzip -dv exp1.gz       //將exp1.gz解壓,並顯示壓縮比等信息。

gzip -cd exp1.gz > exp.1    //將exp1.gz解壓的結果放置在文件exp.1中,並且原壓縮文件exp1.gz不會消失

  特別注意第三條實例, -d 指示解壓縮,-c 參數是將結果輸出至標准輸出,通過 > 符號,將原本輸出至標准輸出的解壓結果重定向至exp.1中,既解壓了文件,原壓縮文件也沒有消失。

  注:
1. 對應於 gzip,可以使用 gunzip 進行解壓操作,效果類似gzip -d xx
2. gzip -c 需要指定輸出到的文件,不然解壓不會執行成功。(參考第三條實例)

bzip2是采用更好壓縮算法的壓縮程序,一般可以提供較之gzip更好的壓縮效果。其具有與gzip相似的指令選項,壓縮產生 .bz2 后綴的壓縮文件。

基礎格式: bzip2 [Options] file1 file2 file3
指令選項:(默認功能為壓縮)
-c       //將輸出寫至標准輸出  
-d       //進行解壓操作  
-v       //輸出壓縮/解壓的文件名和壓縮比等信息  
-k       //在壓縮/解壓過程中保留原文件  
-digit     //digit部分為數字(1-9),代表壓縮速度,digit越小,則壓縮速度越快,但壓縮效果越差,digit越大,則壓縮速度越慢,壓縮效果越好。默認為6.

bzip2 exp1.txt exp2.txt       //分別將exp1.txt和exp2.txt壓縮,且不保留原文件。

bzip2 -dv exp1.bz2       //將exp1.bz2解壓,並顯示壓縮比等信息。

bzip2 -kd exp1.bz2         //將exp1.bz2解壓,並且原壓縮文件exp1.bz2不會消失

  注:
對應於 bzip2,可以使用 bunzip2 進行解壓操作,效果類似bunzip2 -d xx

gzip 或 bzip2 帶有多個文件作為參數時,執行的操作是將各個文件獨立壓縮,而不是將其放在一起進行壓縮。這樣就無法產生類似於Windows環境下的文件夾打包壓縮的效果。(gzip與bzip2也可以使用文件夾作為參數,使用 -f 選項,但也是將其中的每個文件獨立壓縮)。為了實現打包壓縮的效果,可以使用命令 tar 進行文件的打包操作(archive),再進行壓縮。####

tar 指令可以將文件打包成文件檔案(archive)存儲在磁盤/磁帶中,打包操作一般伴隨壓縮操作,也可以使用 tar 指令對打包壓縮后的文件解壓。

基本格式:tar [Options] file_archive  //注意tar的第一參數必須為命令選項,即不能直接接待處理文件
  常用命令參數:
  //指定tar進行的操作,以下三個選項不能出現在同一條命令中
  -c        //創建一個新的打包文件(archive)
  -x        //對打包文件(archive)進行解壓操作
  -t        //查看打包文件(archive)的內容,主要是構成打包文件(archive)的文件名

  //指定支持的壓縮/解壓方式,操作取決於前面的參數,若為創建(-c),則進行壓縮,若為解壓(-x),則進行解壓,不加下列參數時,則為單純的打包操作
  -z        //使用gzip進行壓縮/解壓,一般使用.tar.gz后綴
  -j        //使用bzip2進行壓縮/解壓,一般使用.tar.bz2后綴

  //指定tar指令使用的文件,若沒有壓縮操作,則以.tar作為后綴
  -f filename   //-f后面接操作使用的文件,用空格隔開,且中間不能有其他參數,推薦放在參數集最后或單獨作為參數
         //文件作用取決於前面的參數,若為創建(-c),則-f后為創建的文件的名字(路徑),若為(-x/t),則-f后為待解壓/查看的打包壓縮文件名

  //其他輔助選項
  -v        //詳細顯示正在處理的文件名
  -C Dir      //將解壓文件放置在 -C 指定的目錄下
  -p(小寫)     //保留文件的權限和屬性,在備份文件時較有用
  -P(大寫)     //保留原文件的絕對路徑,即不會拿掉文件路徑開始的根目錄,則在還原時會覆蓋對應路徑上的內容
  --exclude=file //排除不進行打包的文件

壓縮: 
tar -cvjpf etc.tar.bz2 /etc  //-c為創建一個打包文件,相應的-f后面接創建的文件的名稱,使用了.tar.bz2后綴,-j標志使用bzip2壓縮,最后面為具體的操作對象/etc目錄
 
查看:
j選項,-v會顯示詳細的權限信息

解壓
tar -xvjf etc.tar.bz2     //-x為解壓操作,則-f指定的是解壓使用的文件,文件后綴顯示使用bzip2進行壓縮,所以加入-j選項,即使用bzip2解壓
                     //若只解壓指定打包文件中的一個文件,在上述指令的最后加上待解壓文件名作為參數即可

注:
tar -cvf xx.tar.gz xxx 常用壓縮指令
tar -xvf xx.tar.gz 常用解壓指令


免責聲明!

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



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