压缩工具
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,如需转载请自行联系原作者