壓縮工具
compress/uncompress: .Z結尾
gzip/gunzip: .gz結尾
bzip2/bunzip2: .bz2結尾
xz/unxz: .xz字尾,.lzma和.raw字尾
1、預設删除被壓縮的檔案,為了節約空間。保留原檔案必須啟用選項
2、壓縮比不高:快速、高效
3、純文字壓縮,二進制壓縮意義不大
4、bzip2,xz不支援遞歸壓縮
壓縮及歸檔工具: zip/unzip: .zip字尾
1、通用的工具: VMS,Unix,MSDOS,OS/2,Windows(Windows 原生支援的壓縮),Window 9x/NT/XP,Minix
2、tar和壓縮工具共同的作用
3、支援歸檔壓縮目錄
歸檔工具: tar,cpio(特殊場景)
1、歸檔後,檔案可能變大。(書放在箱子裡,箱子的重量)
2、壓縮/解壓縮後不會删除原檔案
3、壓縮時,帶調用壓縮的選項。展開時,可以不帶選項,自動識别。 -Jcf tar.xz
4、支援歸檔或壓縮目錄
gzip/gunzip/zcat指令
1、LZ77壓縮算法
2、壓縮目錄,-r
1
2
3
4
5
6
7
8
<code>gzip</code> <code>[OPTIONS...] FILE</code>
<code> </code><code>-c --stdout </code><code>## 壓縮後的結果輸出到标準輸出。(目的不自動删除原檔案)</code>
<code> </code><code>-d </code><code>## 調用gunzip實作解壓縮</code>
<code> </code><code>-r,--recursive </code><code>## 遞歸壓縮</code>
<code> </code><code>-</code><code># 1,9 ## 壓縮比,越大,檔案小,消耗的cpu時針周期越長</code>
<code>zcat FILE</code>
<code> </code><code>不展開檔案,檢視壓縮檔案的内容</code>
bzip2/bunzip2/bzcat指令
1、LZ77,LZ78壓縮算法,支援比gzip更進階的算法
2、不能壓縮目錄
<code>bzip2</code> <code>[OPTIONS....] FILE</code>
<code> </code><code>-k,keep </code><code>## 不删除原檔案,保持原檔案</code>
<code> </code><code>-d </code><code>## 調用bunzip2解壓檔案</code>
<code> </code><code>-</code><code>#,1-9 ## 壓縮級别。壓縮比,越大,檔案小,消耗的cpu時針周期越長</code>
<code> </code>
<code> </code><code>-q,quiet </code><code>## 靜默模式,适用于腳本中</code>
xz/unxz/xzcat指令
1、流行的壓縮工具,壓縮算法比bzip2更為有效
2、不支援壓縮目錄
9
10
<code>xz [OPTIONS...] FILE...</code>
<code> </code><code>-k</code>
<code> </code><code>-c,--stdout</code>
<code> </code><code>-d</code>
<code> </code><code>-</code><code>#</code>
<code> </code><code>-q </code><code>## 靜默模式</code>
<code> </code><code>-F FORMAT </code><code>## xz,lzma,raw 預設為xz</code>
<code>xzcat FILE 不展開壓縮檔案,檢視檔案解壓的内容</code>
zip/unzip指令,歸檔和壓縮工具
1、解壓後的檔案名同壓縮前的檔案名
3、支援壓縮目錄
<code>zip FILE.zip FILE ...</code>
<code> </code><code>-d, --delete 不展開歸檔,删除歸檔中的檔案</code>
<code> </code><code>-r , 遞歸歸檔</code>
<code> </code><code>-q, 靜默模式</code>
tar GNUtar歸檔工具
2、壓縮/解壓縮後不會删除原檔案
3、支援歸檔目錄
11
<code>tar [OPTIONS...] FILE...</code>
<code> </code><code>-cvf FILE.tar 建立歸檔</code>
<code> </code><code>-xvf FILE.tar 展開歸檔</code>
<code> </code><code>-tvf FILE.tar 不展開歸檔,檢視歸檔的檔案</code>
<code> </code><code>-f FILE.tar 歸檔後的檔案名</code>
<code> </code><code>-v ,verbose詳細資訊</code>
<code> </code><code>-C DIR 展開至指定目錄 </code>
<code> </code><code>-j ,歸檔後,調用bzip2工具對檔案壓縮</code>
<code> </code><code>-J , 歸檔後,調用xz</code>
<code> </code><code>-z , 調用gzip</code>
<code>**指令可省略 - ,例如 -cvf 可寫為 cvf</code>
使用示例
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<code>1、準備檔案</code>
<code>[root@izpo45bh60h6bsz ~]</code><code># cp /etc/{fstab,init.d/functions} /tmp/</code>
<code>[root@izpo45bh60h6bsz ~]</code><code># ls -l /tmp/</code>
<code>-rw-r--r-- 1 root root 358 8月 13 18:08 fstab</code>
<code>-rw-r--r-- 1 root root 15131 8月 13 18:08 functions</code>
<code>2、壓縮檔案</code>
<code>[root@izpo45bh60h6bsz ~]</code><code># cd /tmp</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls</code>
<code>fstab functions</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># gzip fstab </code>
<code>fstab.gz functions </code><code>## 原檔案被删除</code>
<code>3、解壓縮檔案</code>
<code>root@izpo45bh60h6bsz tmp]</code><code># gunzip fstab.gz </code>
<code>fstab functions </code><code>## 解壓的檔案被删除</code>
<code>4、保留原檔案,壓縮</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># gzip -c fstab > fstab.gz</code>
<code>fstab fstab.gz functions</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls -l -h</code>
<code>-rw-r--r-- 1 root root 358 8月 13 18:08 fstab </code><code>## 對比</code>
<code>-rw-r--r-- 1 root root 266 8月 13 18:10 fstab.gz </code><code>## 對比</code>
<code>-rw-r--r-- 1 root root 15K 8月 13 18:08 functions</code>
<code>5、保留原檔案,解壓</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># gzip -d -c fstab.gz > fstab.1</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls -lh</code>
<code>-rw-r--r-- 1 root root 358 8月 13 18:12 fstab </code><code>## 對比</code>
<code>-rw-r--r-- 1 root root 358 8月 13 18:12 fstab.1 </code><code>## 對比</code>
<code>-rw-r--r-- 1 root root 266 8月 13 18:10 fstab.gz</code>
<code>6、低壓縮比和高壓縮比解壓的差別</code>
<code>1)低壓縮:速度快,效率高</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># gzip -c -1 fstab > fstab.1.gz</code>
<code>2)高壓縮,速度慢,浪費cpu時鐘周期,檔案壓縮後的檔案小</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># gzip -c -9 fstab > fstab.2.gz</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls -lh fstab.1.gz fstab.2.gz </code>
<code>-rw-r--r-- 1 root root 267 8月 13 18:14 fstab.1.gz</code>
<code>-rw-r--r-- 1 root root 266 8月 13 18:14 fstab.2.gz</code>
<code>7、壓縮目錄</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># cp -r /etc/pam.d .</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># gzip -r pam.d</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls pam.d/</code>
<code>atd.gz fingerprint-auth-ac.gz ....</code>
<code>8、解壓目錄</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># gunzip pam.d/*</code>
<code>atd fingerprint-auth </code>
<code>9、不展開檔案檢視檔案的内容</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># zcat fstab.gz </code>
<code>#</code>
<code># /etc/fstab</code>
<code># Created by anaconda on Fri Feb 24 02:58:22 2017</code>
<code># Accessible filesystems, by reference, are maintained under '/dev/disk'</code>
<code># See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info</code>
<code>UUID=07151862-c2b9-45dc-bf7a-af8d2a6fa6c1 / ext3 defaults 1 1</code>
<code>/www/swap</code> <code>swap swap defaults 0 0</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code>#</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># cp /var/log/messages /tmp</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls /tmp/messages </code>
<code>/tmp/messages</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># bzip2 messages </code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls messages*</code>
<code>messages.bz2</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># bunzip2 messages.bz2 </code>
<code>messages</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># bzip2 -k messages </code>
<code>messages messages.bz2</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># rm messages</code>
<code>rm</code><code>:是否删除普通檔案 </code><code>"messages"</code><code>?y</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># bzip2 -d -k messages.bz2 </code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># bzip2 -1 -k messages </code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># bzip2 -9 messages.new </code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls -lh messages*</code>
<code>-rw------- 1 root root 469K 8月 13 18:26 messages</code>
<code>-rw------- 1 root root 21K 8月 13 18:26 messages.bz2 </code><code>## 對比</code>
<code>-rw------- 1 root root 18K 8月 13 18:31 messages.new.bz2 </code><code>## 對比</code>
<code>7、不展開檔案檢視檔案的内容</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># bzcat messages.bz2 </code>
<code>Aug 12 10:00:29 izpo45bh60h6bsz pure-ftpd[5446]: ([email protected]) [INFO] New connection from 140.205.225.185</code>
<code>Aug 12 10:00:29 izpo45bh60h6bsz pure-ftpd[5446]: ([email protected]) [ERROR] Unable to </code><code>read</code> <code>the indexed puredb </code><code>file</code> <code>(or old </code><code>format</code> <code>detected) - Try pure-pw mkdb</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># rm /tmp/* -rf</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># cp /etc/fstab /etc/issue .</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xz issue </code>
<code>fstab issue.xz</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xz -d issue.xz </code>
<code>fstab issue</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xz -k issue </code>
<code>fstab issue issue.xz</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xz -c fstab > fstab.xz</code>
<code>fstab fstab.xz issue issue.xz</code>
<code>fstab.xz issue.xz</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xz -d -k fstab.xz issue.xz </code>
<code>-rw-r--r-- 1 root root 358 8月 13 18:40 fstab.bak</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xz -k -1 fstab </code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># mv fstab fstab.bak</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xz -k -9 fstab.bak </code>
<code>-rw-r--r-- 1 root root 324 8月 13 18:40 fstab.bak.xz</code>
<code>-rw-r--r-- 1 root root 332 8月 13 18:40 fstab.xz</code>
<code>7、lzma格式壓縮</code>
<code>fstab </code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xz -F lzma fstab</code>
<code>fstab.bak.xz fstab.lzma issue pam.d</code>
<code>8、不展開檔案檢視檔案的内容</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xzcat fstab.xz </code>
<code>9、靜默模式,錯誤輸出流不輸出至标準輸出</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xz fstab.xz</code>
<code>xz: fstab.xz: File already has `.xz' suffix, skipping</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># xz -q fstab.xz</code>
zip/unzip指令
<code>1、歸檔</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># zip hello fstab.bak.xz fstab.xz issue.xz </code>
<code>總用量 20K</code>
<code>-rw-r--r-- 1 root root 324 8月 13 18:40 fstab.bak.xz</code>
<code>-rw-r--r-- 1 root root 324 8月 13 18:40 fstab.xz</code>
<code>-rw-r--r-- 1 root root 1.2K 8月 13 18:54 hello.zip</code>
<code>-rw-r--r-- 1 root root 80 8月 13 18:39 issue.xz</code>
<code>2、展開</code>
<code>hello.zip pam.d</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># unzip hello.zip </code>
<code>Archive: hello.zip</code>
<code> </code><code>extracting: fstab.bak.xz </code>
<code> </code><code>extracting: fstab.xz </code>
<code> </code><code>extracting: issue.xz </code>
<code>fstab.bak.xz fstab.xz hello.zip issue.xz pam.d</code>
<code>3、歸檔目錄</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># find . -maxdepth 1 -type f -delete</code>
<code>pam.d</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># zip pam.d.zip pam.d</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ll</code>
<code>總用量 8</code>
<code>drwxr-xr-x 2 root root 4096 8月 13 18:43 pam.d</code>
<code>-rw-r--r-- 1 root root 162 8月 13 18:58 pam.d.zip</code>
<code>4、展開歸檔</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># mv pam.d pam.d.bak</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># unzip pam.d.zip </code>
<code>Archive: pam.d.zip</code>
<code> </code><code>creating: pam.d/</code>
<code>pam.d pam.d.bak pam.d.zip</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls pam.d</code>
<code>5、歸檔目錄</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># zip pam.d.1.zip pam.d.bak/*</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># zip -r pam.d.zip pam.d</code>
<code>6、展開歸檔</code>
<code>7、靜默模式:展開時/歸檔時不顯示多餘的資訊</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># unzip -q pam.d.zip</code>
tar指令
<code>1、建立歸檔</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># tar cvf hello.tar ./* </code>
<code>2、展開歸檔</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># tar xvf hello.tar</code>
<code>3、不展開,檢視内容</code>
<code>root@izpo45bh60h6bsz tmp]</code><code># tar tf hello.tar</code>
<code>4、展開至指定目錄</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># mkdir test</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># tar xvf hello.tar -C test/</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls test/</code>
<code>hello pam.d pam.d.1.zip pam.d.bak pam.d.zip</code>
<code>5、歸檔後以</code><code>bzip2</code><code>工具壓縮</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># tar jcf total.tar.bz2 ./*</code>
<code>total.</code><code>tar</code><code>.bz2</code>
<code>6、歸檔後以xz工具壓縮</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># tar Jcf total.tar.xz ./*</code>
<code>total.</code><code>tar</code><code>.xz</code>
<code>7、歸檔後以</code><code>gzip</code><code>工具壓縮</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># tar zcf total.tar.gz ./*</code>
<code>total.</code><code>tar</code><code>.gz</code>
本文轉自 lccnx 51CTO部落格,原文連結:http://blog.51cto.com/sonlich/1955942,如需轉載請自行聯系原作者