Linux常用命令(壓縮命令)

頭像是我偶像發表於2017-05-22

一、常用壓縮格式

  1. 常用壓縮格式有:.zip .gz .bz2
  2. 常用壓縮格式: .tar.gz .tar.bz2

二、按壓縮格式來認識壓縮命令

2.1 .zip格式

  • 壓縮檔案命令:

    zip 壓縮檔名 原始檔

  • 壓縮目錄命令:

    zip -r 壓縮檔名 源目錄

2.2 問題一

zip: command not found

因為沒有安裝zip,所以需要下載並安裝zip

yum install zip

2.3 .zip格式解壓縮

unzip [壓縮檔案]
解壓縮.zip檔案

舉例:

[root@localhost zixuan]# ls -lh
總用量 16K
drwxr-xr-x. 2 root root 4.0K 522 10:32 laoshi
-rw-r--r--. 1 root root  612 520 17:00 laoshi.zip
drwxr-xr-x. 2 root root 4.0K 518 16:09 learn
drwxr-xr-x. 2 root root 4.0K 517 11:41 zm
[root@localhost zixuan]# rm -rf laoshi
[root@localhost zixuan]# ls
laoshi.zip  learn  zm
[root@localhost zixuan]# unzip laoshi.zip
Archive:  laoshi.zip
   creating: laoshi/
 extracting: laoshi/one              
 extracting: laoshi/three            
 extracting: laoshi/two              
[root@localhost zixuan]# ls -lh
總用量 16K
drwxr-xr-x. 2 root root 4.0K 520 16:59 laoshi
-rw-r--r--. 1 root root  612 520 17:00 laoshi.zip
drwxr-xr-x. 2 root root 4.0K 518 16:09 learn
drwxr-xr-x. 2 root root 4.0K 517 11:41 zm

2.4 .gz格式壓縮

  1. 壓縮為.gz格式的壓縮檔案,與原始檔名一樣,但是原始檔會消失;

    .gzip [原始檔]


其中one,two,three都是檔案,舉例:
[root@localhost laoshi]# ls
one  three  two
[root@localhost laoshi]# gzip one
[root@localhost laoshi]# ls
one.gz  three  two
  1. 壓縮為.gz格式的壓縮檔案,並且保留原始檔

    gzip -c laoshi > laoshi.gz


舉例:
[root@localhost laoshi]# ls
one.gz  three  two
[root@localhost laoshi]# gzip -c two > two.gz
[root@localhost laoshi]# ls
one.gz  three  two  two.gz
  1. 壓縮目錄下所有的子檔案,但是不能壓縮目錄,這樣很不方便。

    gzip -r [目錄]


舉例:
gzip -r laoshi ,會壓縮laoshi目錄下面的所有子檔案
[root@localhost zixuan]# ls laoshi
one.gz  three  two  two.gz
[root@localhost zixuan]# gzip -r laoshi
gzip: laoshi/two.gz already exists; do you wish to overwrite (y or n)? y
[root@localhost zixuan]# ls 
laoshi  learn  zm
[root@localhost zixuan]# ls laoshi
one.gz  three.gz  two.gz

2.5 .gz格式解壓縮

  1. 解壓縮檔案

    gzip -d [壓縮檔案]
    gunzip [壓縮檔案]

  2. 解壓縮目錄,即解壓縮目錄下的所有.gz壓縮檔案

    gunzip -r [目錄檔案]

舉例:

[root@localhost zixuan]# cd zm
[root@localhost zm]# gunzip abc.gz
[root@localhost zm]# ls 
abc  first  second
[root@localhost zm]# cd ..
[root@localhost zixuan]# gunzip laoshi
gzip: laoshi is a directory -- ignored
[root@localhost zixuan]# gunzip -r laoshi
[root@localhost zixuan]# ls -l laoshi
總用量 0
-rw-r--r--. 1 root root 0 520 16:59 one
-rw-r--r--. 1 root root 0 520 16:59 three
-rw-r--r--. 1 root root 0 520 16:59 two

2.6 .bz2格式壓縮

bzip2命令還能壓縮目錄,只能壓縮檔案

1、壓縮為.bz2格式,並且不保留原始檔

bzip [原始檔]

2、壓縮之後保留原始檔

bzip2 -k [原始檔]

2.7 .bz2格式解壓縮


  1. 解壓縮檔案,-k保留壓縮檔案

bzip2 -d [壓縮檔案]
bunzip2 [壓縮檔案]
舉例:

[root@localhost zixuan]# ls laoshi
one  three  two
[root@localhost zixuan]# cd laoshi
[root@localhost laoshi]# bzip2 one
[root@localhost laoshi]# ls
one.bz2  three  two
[root@localhost laoshi]# bzip2 -k two
[root@localhost laoshi]# ls
one.bz2  three  two  two.bz2
[root@localhost laoshi]# bzip2 -dk one.bz2
[root@localhost laoshi]# ls
one  one.bz2  three  two  two.bz2
[root@localhost laoshi]# rm two
rm:是否刪除普通空檔案 "two"?y
[root@localhost laoshi]# ls
one  one.bz2  three  two.bz2
[root@localhost laoshi]# bunzip2 two.bz2
[root@localhost laoshi]# ls
one  one.bz2  three  two

2.8 .tar.gz格式與.tar.bz2格式

前面提到的命令gzip與bzip2只能對檔案或者子檔案進行單獨壓縮,並不能對整個目錄進行壓縮,不能打包成一個壓縮檔案。這樣對壓縮工作來說,很不方便,那麼有沒有可以解決這個問題的命令呢?答案當然是有的。在這之前我們先來學習一個打包命令tar:

1、打包命令tar

這種將多個檔案或目錄打包成一個大檔案的命令功能,我們稱呼它為“打包命令”。

tar -cvf [打包檔名] [原始檔]

tar命令中的選項有:

選項 含義
-c 新建打包檔案,可搭配-v檢視過程中被打包的檔名
-x 解打包或解壓縮功能,可以搭配-C(大寫C)指定解壓目錄
-t 檢視打包檔案的內容,檢視有哪些檔案
-z 通過gzip的支援進行壓縮/解壓縮,此時檔名最好為“*.tar.gz”
-j 通過bzip2的支援進行壓縮/解壓縮,此時檔名最好為“*.tar.bz2”
-f filename -f 後面要接被處理的檔名,建議-f 單獨寫一個引數
-v 在壓縮/解壓縮過程中,將正在處理的檔名顯示出來
-C 在解壓縮時,若要解壓縮到特定目錄就可以使用這個引數

2、解打包命令

tar -xvf 打包檔名

3、.tar.gz壓縮格式

其實.tar.gz格式是先打包為.tar格式,再壓縮為.gz格式

tar -zcvf 壓縮包名.tar.gz 原始檔
將原始檔壓縮成.tar.gz格式的檔案

tar -zxvf 壓縮包名.tar.gz
將壓縮包名.tar.gz的檔案解壓

4、.tar.bz2壓縮格式

其實.tar.bz2格式是先打包為.tar格式,再壓縮為.bz2格式

tar -jcvf 壓縮包名.tar.bz2 原始檔
將原始檔壓縮成.tar.bz2格式的檔案

tar -jxvf 壓縮包名.tar.bz2
將壓縮包名.tar.bz2的檔案解壓

5、綜合舉例

[root@localhost zixuan]# ls laoshi
one  three  two
[root@localhost zixuan]# tar -cvf laoshi.tar laoshi
laoshi/
laoshi/one
laoshi/three
laoshi/two
[root@localhost zixuan]# ls
laoshi  laoshi.tar  learn  zm
[root@localhost zixuan]# tar -tvf laoshi.tar
drwxr-xr-x root/root         0 2017-05-22 11:43 laoshi/
-rw-r--r-- root/root         0 2017-05-20 16:59 laoshi/one
-rw-r--r-- root/root         0 2017-05-20 16:59 laoshi/three
-rw-r--r-- root/root         0 2017-05-20 16:59 laoshi/two
[root@localhost zixuan]# ls
laoshi  laoshi.tar  learn  zm
[root@localhost zixuan]# rm -rf laoshi
[root@localhost zixuan]# ls
laoshi.tar  learn  zm
[root@localhost zixuan]# tar -xvf laoshi.tar
laoshi/
laoshi/one
laoshi/three
laoshi/two
[root@localhost zixuan]# ls
laoshi  laoshi.tar  learn  zm
[root@localhost zixuan]# tar -zcvf laoshi.tar.gz laoshi
laoshi/
laoshi/one
laoshi/three
laoshi/two
[root@localhost zixuan]# ls
laoshi  laoshi.tar  laoshi.tar.gz  learn  zm
[root@localhost zixuan]# tar -jcvf laoshi.tar.bz2 laoshi
laoshi/
laoshi/one
laoshi/three
laoshi/two
[root@localhost zixuan]# ls
laoshi  laoshi.tar  laoshi.tar.bz2  laoshi.tar.gz  learn  zm
[root@localhost zixuan]# tar -jtvf laoshi.tar.bz2
drwxr-xr-x root/root         0 2017-05-22 11:43 laoshi/
-rw-r--r-- root/root         0 2017-05-20 16:59 laoshi/one
-rw-r--r-- root/root         0 2017-05-20 16:59 laoshi/three
-rw-r--r-- root/root         0 2017-05-20 16:59 laoshi/two
[root@localhost zixuan]# ls laoshi
one  three  two

相關文章