Linux 系統常見的壓縮指令
*.Z compress 程式壓縮的檔案
*.gz gzip 程式壓縮的檔案
*.bz2 bzip2 程式壓縮的檔案
*.tar tar 程式打包的資料,並沒有壓縮過
*.tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮
*.tar.bz2 tar 程式打包的檔案,其中並且經過 bzip2 的壓縮
由於compress有點年紀了,現在也沒什麼人在使用因此不做特別說明。想了解的可以自行玩玩
*.gz gzip 程式壓縮的檔案
壓縮方式:
[root@www ~]# gzip [ 參數] 檔名
解壓縮方式:
[root@www ~]# gzip -d[參數] 檔名.gz
只讀取檔案不解開:
[root@www ~]# zcat 檔名.gz
參數的使用說明:
-c :將壓縮的資料輸出到螢幕上,可透過資料流重導向來處理
-d :解壓縮的參數
-t :可以用來檢驗一個壓縮檔的一致性~看看檔案有無錯誤
-v :可以顯示出原檔案/壓縮檔案的壓縮比等資訊
-# :壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但是壓縮比最好!預設是 -6
*.bz2 bzip2 程式壓縮的檔案
壓縮方式:
[root@www ~]# bzip2 -z [ 參數] 檔名
解壓縮方式:
[root@www ~]# bzip2 -d[參數] 檔名.bz2
只讀取檔案不解開:
[root@www ~]# bzcat 檔名.bz2
參數的使用說明:
-c :將壓縮的過程產生的資料輸出到螢幕上!
-d :解壓縮的參數
-k :保留原始檔案,而不會刪除原始的檔案喔!
-z :壓縮的參數
-v :可以顯示出原檔案/壓縮檔案的壓縮比等資訊;
-# :與 gzip 同樣的,都是在計算壓縮比的參數, -9 最佳, -1 最快!
*.tar(打包指令) 只使用tar 程式打包的資料,並沒有壓縮過
因此可以透過gzip和bzip2的支援來進行壓縮
參數的使用說明:
-c :建立打包檔案,可搭配 -v 來察看過程中被打包的檔名(filename)
-t :察看打包檔案的內容含有哪些檔名,重點在察看『檔名』就是了;
-x :解打包或解壓縮的功能,可以搭配 -C (大寫) 在特定目錄解開
特別留意的是, -c, -t, -x 不可同時出現在一串指令列中。
-j :透過 bzip2 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.bz2
-z :透過 gzip 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.gz
-v :在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來!
-f filename:-f 後面要立刻接要被處理的檔名!建議 -f 單獨寫一個選項囉!
-C 目錄 :這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。
其他後續練習會使用到的選項介紹:
-p :保留備份資料的原本權限與屬性,常用於備份(-c)重要的設定檔
-P :保留絕對路徑,亦即允許備份資料中含有根目錄存在之意;
–exclude=FILE:在壓縮的過程中,不要將 FILE 打包!
*.tar.gz (gzip) tar 程式打包的檔案,其中並且經過 gzip 的壓縮
壓縮方式: (整個目錄內的檔案)
[root@www ~]# tar -czpvf etc.tar.gz ./*
說明(etc是檔名可修改)
壓縮方式: (整個目錄 包含 最外層的資料夾)
[root@www ~]# tar -czpvf /root/etc.tar.gz /etc
說明(/root/etc.tar.gz是存放路徑,etc.tar.gz檔案名稱(etc是檔名可修改),/etc要壓縮的資料夾)
解壓縮方式: (在當下的目錄解開):
[root@www ~]# tar -zxvpf etc.tar.gz
說明(etc.tar.gz為檔案名)
解壓縮方式: (解到特定的資料夾) -C(在特定目錄解開)
[root@www ~]# tar -zxvpf etc.tar.gz -C /home/user
說明(如果在etc.tar.gz所在的資料夾內 這樣下就可以了,/home/user為指定的解壓縮路徑)
[root@www ~]# tar -zxvpf /root/etc.tar.gz -C /home/user
說明(/root/etc.tar.gz是檔案的路徑,etc.tar.gz檔案名稱,/home/user為指定的路徑)
只讀取檔案不解開:
[root@www ~]# tar -ztvpf etc.com.tar.gz
說明(etc.tar.gz為檔案名)
*.tar.bz2 (bzip2) tar 程式打包的檔案,其中並且經過 bzip2 的壓縮
壓縮方式: (整個目錄內的檔案)
[root@www ~]# tar -cjpvf etc.tar.bz2 ./*
說明(etc是檔名可修改)
壓縮方式: (整個目錄 包含 最外層的資料夾)
[root@www ~]# tar -cjpvf /root/etc.tar.bz2 /etc
說明(/root/etc.tar.gz是存放路徑,etc.tar.bz2檔案名稱(etc是檔名可修改),/etc要壓縮的資料夾)
解壓縮方式: (在當下的目錄解開):
[root@www ~]# tar -jxvpf etc.tar.bz2
說明(etc.tar.bz2為檔案名)
解壓縮方式: (解到特定的資料夾) -C(在特定目錄解開)
[root@www ~]# tar -jxvpf etc.tar.bz2 -C /home/user
說明(如果在etc.tar.bz2所在的資料夾內 這樣下就可以了,/home/user為指定的解壓縮路徑)
[root@www ~]# tar -jxvpf /root/etc.tar.bz2 -C /home/user
說明(/root/etc.tar.bz2是檔案的路徑,etc.tar.bz2檔案名稱,/home/user為指定的路徑)
只讀取檔案不解開:
[root@www ~]# tar -jtvpf etc.com.tar.bz2
說明(etc.tar.bz2為檔案名)
其實在 gzip 和 bzip2 的使用上大至上都差不多只差在( z )和( j )的參數上
在壓縮後的檔案中以 bzip2 壓縮後的檔案比例較小。
以上內容為參考鳥哥整理出來的,如果想要更詳細了解其他使用方式可直接參考鳥哥第九章壓縮指令的運用
Terrific work! This is the type of information that should be shared around the web. Shame on the search engines for not positioning this post higher!
This is such a great resource that you are providing and you give it away for free. I enjoy seeing websites that understand the value of providing a prime resource for free. I truly loved reading your post. Thanks!
I hope to help you that by my blog