閱讀121 返回首頁    go 人物


初學者必看:Linux壓縮那些事兒

Linux的壓縮命令的源文件隻能有一個,這意味在壓縮之前不得不先將要壓縮的所有文件打包成一個包,然後再壓縮包,這樣來完成對多個文件的壓縮。所以在了解解壓縮之前就必須先了解打包命令。Linux的打包一般都是通過tar命令來完成的,通過man tar,可以得到一些信息,tar來完成不同的動作是通過指定不同的參數來完成的,通常使用的也就是——x/c,這兩個參數,它們的字麵含義是c——create,x——extract,創建和分包提取,另外還有一些不常用的參數,比如a,將tar添加到另外一個tar包的末尾,t,列出包中的文件,-C,將工作目錄切換到指定的目錄下,指定這個參數就可以將解壓後的文件放到指定的目錄當中去了,等。另外有一個重要的參數f,這個參數可以打包的結果放在一個文件當中。下麵舉兩個簡單的例子說明打包和分包提取:1.打包文件,現在有3個文件,文件名分別是fiel1,file2,file3,把這三個文件打包成file.tar.tar -cf file.tar file1 file2 file3-c,打包模式,-f指定將要創建的打包結果存放文件。2.解包文件,現在有一個包file.tar,將它解包。tar -xf file.tar-x,解包模式,-f指定tar包文件。講完打包,接著將壓縮,壓縮的作用毋庸置疑,一旦一件事物變的更為簡單之後,各方麵的操作就更為簡單,Linux的壓縮一般有幾種方式,它們是gzip壓縮,bzip2壓縮,xz壓縮。它們的輸入都隻有一個,下麵講一個實例,分別用這三種壓縮方式來壓縮file.tar,然後壓縮好的壓縮文件再分別用這三種方式解壓,生成xfile.tar,由於分別對單純的解壓和壓縮並不是本文的重點,所以有些參數就不著重介紹,但需要的時候會簡單的介紹下。1.用gzip操作壓縮:gzip file.tar (如想將文件壓縮到指定的文件當中去,可用"gzip -c file.tar > xxx",來完成,以下相同)解壓:gunzip -c file.tar.gz > xfile.tar2.用bzip2操作壓縮:bzip2 -c file.tar > xifle.tar.bz2解壓:bunzip2 -cv xfile.tar.bz2 > xfile.tar3.用xz操作壓縮:xz -c file.tar > xfile.tar.xz解壓:unxz -c xfile.tar.xz > xfile.tar對於壓縮來講,壓縮率顯然是首要關注點,就壓縮率而言,xz>bzip2>gzip,一般情況下xz能比bzip2高出15%的壓縮率,比gzip高出30%的壓縮率,但是另外的有一些東西在具體的場合下還是需要關心的,比如CPU占有率,xz雖然壓縮比高,但是它的耗時卻是最多的,這意味著占用了更多的CPU時間片,所以在選擇壓縮算法的時候還應該考慮到現在的首要關注點是什麼,以此來選擇壓縮算法。上麵分別講解了打包和解壓縮這兩個過程,但這兩個過程是分開的,在通常情況下,這兩個過程不會分開,而是用tar包一步將多個文件打包壓縮成一個壓縮包,下麵將分別使用tar命令調用這三種壓縮方式來完成一步將多個文件打包壓縮成一個壓縮包。1.用tar調用gzip將file1,file2,file3生成壓縮包tar -czvf file.tar.gz file{1,2,3}2.用tar調用bzip2將file1,file2,file3生成壓縮包tar -cjvf file.tar.bz2 file{1,2,3}3.用tar調用xz將file1,file2,file3生成壓縮包tar -cJvf file.tar.xz file{1,2,3}對於上麵的文字,有點需要注意,那就是後綴名並不是必須的,Linux當中後綴名都不是必須的,這應該是一個基礎點,之所以指定後綴名是為了便於區別,也方便一些粗糙的識別程序。閱讀完上麵的文字,我相信對Linux的壓縮應該有一定程度的掌握,其實最重要的還是要學會閱讀man page,裏麵應有盡有,隻是過全就會過於複雜,不太適合初學者。

最後更新:2017-04-03 20:19:53

  上一篇:go Android 5.0發布日期/機型/功能傳言匯總
  下一篇:go Struts2中的ActionContextCleanUp攔截器