1. 程式人生 > >Centos常用命令之:壓縮與解壓縮

Centos常用命令之:壓縮與解壓縮

replace 那種 在線安裝 後綴 unzip .com cal gunzip 基本上

  在Linux中,壓縮文件的擴展名主要是:[*.tar,*.tar.gz,*.tgz,*.gz,*.Z,*.bz2],雖然,我們知道,在LInux中,文件的擴展名沒有什麽作用,但是由於在Linux中支持的壓縮命令非常的多,為了在解壓縮的時候知道用那種方式來解壓縮,就需要帶上特定的擴展名。

擴展名對應的壓縮方式:

◇*.Z:compress程序壓縮的文件  

◇*.gz:gzip程序壓縮的文件

◇*.bz2:bzip2程序壓縮的文件

◇*.tar:tar程序打包的數據,並沒有壓縮過

◇*.tar.gz:tar程序打包的文件,並且經過gzip程序的壓縮

◇*.tar.bz2:tar程序打包的文件,並且經過bzip2程序的壓縮

其中compress是比較老的一款壓縮軟件,已經被gzip取代了,用gzip也可以解開compress壓縮的文件。

但是由於這些壓縮方式都只能針對單個文件。這時候打包軟件[tar]就顯得很重要了。

compress

用法:compress [-rcV] 文件或目錄 ← 壓縮命令

默認情況下,壓縮後的文件後綴為.Z,並且壓縮前的源文件會消失。

-r:可以連同目錄下的文件也同時給與壓縮

-c:將壓縮數據輸出成為standard output(輸出到屏幕)

-v:可以秀出壓縮後的文件資訊以及壓縮過程中的一些檔名變化

默認情況下,我們的Centos中並沒用安裝compress這個軟件,我們可以用下面的命令來在線安裝

yum install ncompress

實例:

[[email protected] stu]# ll
總用量 12
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:46 lin2
[[email protected] stu]# compress -v lin
lin:  -- replaced with lin.Z Compression: 
27.95% [[email protected] stu]# ll 總用量 12 -rw-r--r--. 1 fuwh fuwh 2865 7月 26 10:45 lin1 -rw-r--r--. 1 fuwh fuwh 2865 7月 26 10:46 lin2 -rw-r--r--. 1 fuwh fuwh 2064 7月 26 10:45 lin.Z

如果想要壓縮後的文件還保留的話,可以用[-c]選項

[[email protected] stu]# ll
總用量 12
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:46 lin2
-rw-r--r--. 1 fuwh fuwh 2064 7月  26 10:45 lin.Z
[[email protected] stu]# compress -c lin1 > lin11.Z
[[email protected] stu]# ll
總用量 16
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2064 7月  26 10:58 lin11.Z
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:46 lin2
-rw-r--r--. 1 fuwh fuwh 2064 7月  26 10:45 lin.Z
[[email protected] stu]#

如果要解壓縮的話,就用uncompress命令

[[email protected] stu]# ll
總用量 16
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2064 7月  26 10:58 lin11.Z
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:46 lin2
-rw-r--r--. 1 fuwh fuwh 2064 7月  26 10:45 lin.Z
[[email protected] stu]# uncompress lin11.Z
[[email protected] stu]# ll
總用量 16
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2865 7月  26 10:58 lin11
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:46 lin2
-rw-r--r--. 1 fuwh fuwh 2064 7月  26 10:45 lin.Z
[[email protected] stu]#

gzip,zcat

使用gzip壓縮的文件擴展名為.gz,還可以解開copmress壓縮的文件。

使用方法:gzip [-cdtv#] 文件名

-c:將壓縮的數據輸出到屏幕上

-d:解壓縮的參數,也可以使用gunzip命令

-t:可以用來檢驗壓縮檔的一致性,看看文件有無錯誤

-v:可以顯示出文件的壓縮比率

-#:壓縮等級,-1最快,但是壓縮比最差,-9最慢,但是壓縮比最好,默認是-6

zcat可以用來讀取壓縮後的文件內容

實例:

[[email protected] stu]# ll
總用量 16
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2865 7月  26 10:58 lin11
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:46 lin2
[[email protected] stu]# gzip -v lin
lin:     45.1% -- replaced with lin.gz
[[email protected] stu]# ll
總用量 16
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2865 7月  26 10:58 lin11
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:46 lin2
-rw-r--r--. 1 fuwh fuwh 1596 7月  26 10:45 lin.gz
[[email protected] stu]# gzip -c lin2 > lin2.gz
[[email protected] stu]# ll
總用量 20
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2865 7月  26 10:58 lin11
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:46 lin2
-rw-r--r--. 1 root root 1597 7月  26 11:13 lin2.gz
-rw-r--r--. 1 fuwh fuwh 1596 7月  26 10:45 lin.gz
[[email protected] stu]# zcat lin.gz
■◇□※

■terterm
連不上的原因:防火墻未關閉
....後面內容省略....
[[email protected] stu]# gunzip lin2.gz
gzip: lin2 already exists; do you wish to overwrite (y or n)? y
[[email protected] stu]# gzip -d lin.gz
[[email protected] stu]# ll
總用量 16
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2865 7月  26 10:58 lin11
-rw-r--r--. 1 root root 2865 7月  26 11:13 lin2
[[email protected] stu]#

bzip2,bzcat

bzip2的壓縮比率比gzip還要好,用法和gzip基本上一樣。壓縮的後綴名為.bz2。

用法:bzip2 [-cdkzv#] 文件名

-c:將壓縮的過程產生的數據輸出到屏幕上

-d:解壓縮的參數,也可以使用bunzip2來解壓縮。

-k:保留原始文件

-z:壓縮的參數

-v:可以顯示壓縮比率

-#:與gzip一樣壓縮比參數

可以使用bzcat來讀取壓縮後的文件。

實例:

[[email protected] stu]# ll
總用量 16
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2865 7月  26 10:58 lin11
-rw-r--r--. 1 root root 2865 7月  26 11:13 lin2
[[email protected] stu]# bzip2 -zv lin
  lin:      1.694:1,  4.722 bits/byte, 40.98% saved, 2865 in, 1691 out.
[[email protected] stu]# ll
總用量 16
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2865 7月  26 10:58 lin11
-rw-r--r--. 1 root root 2865 7月  26 11:13 lin2
-rw-r--r--. 1 fuwh fuwh 1691 7月  26 10:45 lin.bz2
[[email protected] stu]# bzip2 -cvk lin2 > lin2.bz2
  lin2:     1.694:1,  4.722 bits/byte, 40.98% saved, 2865 in, 1691 out.
[[email protected] stu]# ll
總用量 20
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2865 7月  26 10:58 lin11
-rw-r--r--. 1 root root 2865 7月  26 11:13 lin2
-rw-r--r--. 1 root root 1691 7月  26 11:27 lin2.bz2
-rw-r--r--. 1 fuwh fuwh 1691 7月  26 10:45 lin.bz2
[[email protected] stu]# bzip2 -d lin.bz2
[[email protected] stu]# ll
總用量 20
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin
-rw-r--r--. 1 fuwh fuwh 2865 7月  26 10:45 lin1
-rw-r--r--. 1 root root 2865 7月  26 10:58 lin11
-rw-r--r--. 1 root root 2865 7月  26 11:13 lin2
-rw-r--r--. 1 root root 1691 7月  26 11:27 lin2.bz2
-rw-r--r--. 1 root root    0 7月  26 11:27 lin3
[[email protected] stu]#

tar

前面的壓縮命令都是對單個文件的壓縮,tar命令主要用來將多個文件或目錄打包成一個大文件。

使用方法:

tar [-j | -z] [cv] [-f 創建的檔名] filename <-- 打包與壓縮

tar [-j | -z] [tv] [-f 創建的檔名] <-- 查看檔名

tar [-j | -z] [xv] [-f 創建的檔名] [-C 目錄] 解壓縮

-c:創建打包文件,可搭配-v來查看過程中被打包的檔名

-t:查看打包文件的內容含有哪些檔名

-x:解打包或解壓縮的功能,可搭配-C在特定目錄中解開,需要註意,-c,-t,-x不能一起出現

-j:通過bizp2的支持來進行壓縮/解壓縮,此時的檔名為*.tar.bz2

-z:通過gzip的支持來進行壓縮/解壓縮,此時的檔名為*.tar.gz

-v:在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來

-f filename:-f後面要立刻接要被處理的檔名。所以如果和其他選項一起寫的時候,需要寫在最後面。

-C 目錄:在解壓縮的時候指定解壓縮的目錄

例子:

[[email protected] fuwh]# ll
總用量 8
drwxrwxr-x. 2 fuwh fuwh 4096 7月  26 11:55 stu
drwxrwxr-x. 3 fuwh fuwh 4096 7月  25 10:27 stu2
[[email protected] fuwh]# tar -zcv -f stu2.tar.gz stu2
stu2/
stu2/stu22/
stu2/stu22/aa.txt
[[email protected] fuwh]# tar -jcv -f stu2.tar.bz2 stu
stu/
stu/lin
stu/lin11
stu/lin1
stu/lin2
stu/lin3
[[email protected] fuwh]# ll
總用量 16
drwxrwxr-x. 2 fuwh fuwh 4096 7月  26 11:55 stu
drwxrwxr-x. 3 fuwh fuwh 4096 7月  25 10:27 stu2
-rw-r--r--. 1 root root 2439 7月  26 11:57 stu2.tar.bz2
-rw-r--r--. 1 root root  165 7月  26 11:57 stu2.tar.gz
[[email protected] fuwh]#

通常,我們在網上下一些開發用的軟件,都是tar.gz格式的。比如:

技術分享

這個時候,我們就可以用 tar -zxvf 文件名 來解壓縮了。

[[email protected] data]# ll
總用量 53424
-rw-r--r--. 1 fuwh fuwh 54703519 7月  26 12:02 server-jre-8                                                                                u141-linux-x64.tar.gz
[[email protected] data]# tar -zxvf server-jre-8u141-linux-x64                                                                                .tar.gz
jdk1.8.0_141/
jdk1.8.0_141/THIRDPARTYLICENSEREADME.txt
jdk1.8.0_141/lib/
jdk1.8.0_141/lib/jexec

。。。中略。。。

[[email protected] data]# ll
總用量 53428
drwxr-xr-x. 7 uucp  143     4096 7月  12 20:45 jdk1.8.0_141
-rw-r--r--. 1 fuwh fuwh 54703519 7月  26 12:02 server-jre-8                                                                                u141-linux-x64.tar.gz
[[email protected] data]#

Centos常用命令之:壓縮與解壓縮