压缩工具
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
|
gzip
[OPTIONS...] FILE
-c --stdout
## 压缩后的结果输出到标准输出。(目的不自动删除原文件)
-d
## 调用gunzip实现解压缩
-r,--recursive
## 递归压缩
-
# 1,9 ## 压缩比,越大,文件小,消耗的cpu时针周期越长
zcat FILE
不展开文件,查看压缩文件的内容
|
bzip2/bunzip2/bzcat命令
1、LZ77,LZ78压缩算法,支持比gzip更高级的算法
2、不能压缩目录
1
2
3
4
5
6
|
bzip2
[OPTIONS....] FILE
-k,keep
## 不删除原文件,保持原文件
-d
## 调用bunzip2解压文件
-
#,1-9 ## 压缩级别。压缩比,越大,文件小,消耗的cpu时针周期越长
-q,quiet
## 静默模式,适用于脚本中
|
xz/unxz/xzcat命令
1、流行的压缩工具,压缩算法比bzip2更为有效
2、不支持压缩目录
1
2
3
4
5
6
7
8
9
10
|
xz [OPTIONS...] FILE...
-k
-c,--stdout
-d
-
#
-q
## 静默模式
-F FORMAT
## xz,lzma,raw 默认为xz
xzcat FILE 不展开压缩文件,查看文件解压的内容
|
zip/unzip命令,归档和压缩工具
1、解压后的文件名同压缩前的文件名
2、压缩/解压缩后不会删除原文件
3、支持压缩目录
1
2
3
4
|
zip FILE.zip FILE ...
-d, --delete 不展开归档,删除归档中的文件
-r , 递归归档
-q, 静默模式
|
tar GNUtar归档工具
1、解压后的文件名同压缩前的文件名
2、压缩/解压缩后不会删除原文件
3、支持归档目录
1
2
3
4
5
6
7
8
9
10
11
|
tar [OPTIONS...] FILE...
-cvf FILE.tar 创建归档
-xvf FILE.tar 展开归档
-tvf FILE.tar 不展开归档,查看归档的文件
-f FILE.tar 归档后的文件名
-v ,verbose详细信息
-C DIR 展开至指定目录
-j ,归档后,调用bzip2工具对文件压缩
-J , 归档后,调用xz
-z , 调用gzip
**命令可省略 - ,例如 -cvf 可写为 cvf
|
gzip/gunzip/zcat命令
使用示例
1
2
3
4
5
6
7
8
9
10
11
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
|
1、准备文件
[root@izpo45bh60h6bsz ~]
# cp /etc/{fstab,init.d/functions} /tmp/
[root@izpo45bh60h6bsz ~]
# ls -l /tmp/
-rw-r--r-- 1 root root 358 8月 13 18:08 fstab
-rw-r--r-- 1 root root 15131 8月 13 18:08 functions
2、压缩文件
[root@izpo45bh60h6bsz ~]
# cd /tmp
[root@izpo45bh60h6bsz tmp]
# ls
fstab functions
[root@izpo45bh60h6bsz tmp]
# gzip fstab
[root@izpo45bh60h6bsz tmp]
# ls
fstab.gz functions
## 原文件被删除
3、解压缩文件
root@izpo45bh60h6bsz tmp]
# gunzip fstab.gz
[root@izpo45bh60h6bsz tmp]
# ls
fstab functions
## 解压的文件被删除
4、保留原文件,压缩
[root@izpo45bh60h6bsz tmp]
# gzip -c fstab > fstab.gz
[root@izpo45bh60h6bsz tmp]
# ls
fstab fstab.gz functions
[root@izpo45bh60h6bsz tmp]
# ls -l -h
-rw-r--r-- 1 root root 358 8月 13 18:08 fstab
## 对比
-rw-r--r-- 1 root root 266 8月 13 18:10 fstab.gz
## 对比
-rw-r--r-- 1 root root 15K 8月 13 18:08 functions
5、保留原文件,解压
[root@izpo45bh60h6bsz tmp]
# gzip -d -c fstab.gz > fstab.1
[root@izpo45bh60h6bsz tmp]
# ls -lh
-rw-r--r-- 1 root root 358 8月 13 18:12 fstab
## 对比
-rw-r--r-- 1 root root 358 8月 13 18:12 fstab.1
## 对比
-rw-r--r-- 1 root root 266 8月 13 18:10 fstab.gz
-rw-r--r-- 1 root root 15K 8月 13 18:08 functions
6、低压缩比和高压缩比解压的区别
1)低压缩:速度快,效率高
[root@izpo45bh60h6bsz tmp]
# gzip -c -1 fstab > fstab.1.gz
2)高压缩,速度慢,浪费cpu时钟周期,文件压缩后的文件小
[root@izpo45bh60h6bsz tmp]
# gzip -c -9 fstab > fstab.2.gz
[root@izpo45bh60h6bsz tmp]
# ls -lh fstab.1.gz fstab.2.gz
-rw-r--r-- 1 root root 267 8月 13 18:14 fstab.1.gz
-rw-r--r-- 1 root root 266 8月 13 18:14 fstab.2.gz
7、压缩目录
[root@izpo45bh60h6bsz tmp]
# cp -r /etc/pam.d .
[root@izpo45bh60h6bsz tmp]
# gzip -r pam.d
[root@izpo45bh60h6bsz tmp]
# ls pam.d/
atd.gz fingerprint-auth-ac.gz ....
8、解压目录
[root@izpo45bh60h6bsz tmp]
# gunzip pam.d/*
[root@izpo45bh60h6bsz tmp]
# ls pam.d/
atd fingerprint-auth
9、不展开文件查看文件的内容
[root@izpo45bh60h6bsz tmp]
# zcat fstab.gz
#
# /etc/fstab
# Created by anaconda on Fri Feb 24 02:58:22 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=07151862-c2b9-45dc-bf7a-af8d2a6fa6c1 / ext3 defaults 1 1
/www/swap
swap swap defaults 0 0
[root@izpo45bh60h6bsz tmp]
#
|
bzip2/bunzip2/bzcat命令
使用示例
1
2
3
4
5
6
7
8
9
10
11
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
|
1、准备文件
[root@izpo45bh60h6bsz tmp]
# cp /var/log/messages /tmp
[root@izpo45bh60h6bsz tmp]
# ls /tmp/messages
/tmp/messages
2、压缩文件
[root@izpo45bh60h6bsz ~]
# cd /tmp
[root@izpo45bh60h6bsz tmp]
# bzip2 messages
[root@izpo45bh60h6bsz tmp]
# ls messages*
messages.bz2
3、解压缩文件
[root@izpo45bh60h6bsz tmp]
# bunzip2 messages.bz2
[root@izpo45bh60h6bsz tmp]
# ls messages*
messages
4、保留原文件,压缩
[root@izpo45bh60h6bsz tmp]
# bzip2 -k messages
[root@izpo45bh60h6bsz tmp]
# ls messages*
messages messages.bz2
5、保留原文件,解压
[root@izpo45bh60h6bsz tmp]
# rm messages
rm
:是否删除普通文件
"messages"
?y
[root@izpo45bh60h6bsz tmp]
# ls messages*
messages.bz2
[root@izpo45bh60h6bsz tmp]
# bzip2 -d -k messages.bz2
[root@izpo45bh60h6bsz tmp]
# ls messages*
messages messages.bz2
6、低压缩比和高压缩比解压的区别
[root@izpo45bh60h6bsz tmp]
# bzip2 -1 -k messages
[root@izpo45bh60h6bsz tmp]
# bzip2 -9 messages.new
[root@izpo45bh60h6bsz tmp]
# ls -lh messages*
-rw------- 1 root root 469K 8月 13 18:26 messages
-rw------- 1 root root 21K 8月 13 18:26 messages.bz2
## 对比
-rw------- 1 root root 18K 8月 13 18:31 messages.new.bz2
## 对比
7、不展开文件查看文件的内容
[root@izpo45bh60h6bsz tmp]
# bzcat messages.bz2
Aug 12 10:00:29 izpo45bh60h6bsz pure-ftpd[5446]: (?@140.205.225.185) [INFO] New connection from 140.205.225.185
Aug 12 10:00:29 izpo45bh60h6bsz pure-ftpd[5446]: (?@140.205.225.185) [ERROR] Unable to
read
the indexed puredb
file
(or old
format
detected) - Try pure-pw mkdb
|
xz/unxz/xzcat命令
使用示例
1
2
3
4
5
6
7
8
9
10
11
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
|
1、准备文件
[root@izpo45bh60h6bsz tmp]
# rm /tmp/* -rf
[root@izpo45bh60h6bsz tmp]
# cp /etc/fstab /etc/issue .
2、压缩文件
[root@izpo45bh60h6bsz tmp]
# xz issue
[root@izpo45bh60h6bsz tmp]
# ls
fstab issue.xz
3、解压缩文件
[root@izpo45bh60h6bsz tmp]
# xz -d issue.xz
[root@izpo45bh60h6bsz tmp]
# ls
fstab issue
4、保留原文件,压缩
[root@izpo45bh60h6bsz tmp]
# xz -k issue
[root@izpo45bh60h6bsz tmp]
# ls
fstab issue issue.xz
[root@izpo45bh60h6bsz tmp]
# xz -c fstab > fstab.xz
[root@izpo45bh60h6bsz tmp]
# ls
fstab fstab.xz issue issue.xz
5、保留原文件,解压
[root@izpo45bh60h6bsz tmp]
# ls
fstab.xz issue.xz
[root@izpo45bh60h6bsz tmp]
# xz -d -k fstab.xz issue.xz
[root@izpo45bh60h6bsz tmp]
# ls
fstab fstab.xz issue issue.xz
6、低压缩比和高压缩比解压的区别
-rw-r--r-- 1 root root 358 8月 13 18:40 fstab.bak
[root@izpo45bh60h6bsz tmp]
# xz -k -1 fstab
[root@izpo45bh60h6bsz tmp]
# mv fstab fstab.bak
[root@izpo45bh60h6bsz tmp]
# xz -k -9 fstab.bak
-rw-r--r-- 1 root root 324 8月 13 18:40 fstab.bak.xz
-rw-r--r-- 1 root root 332 8月 13 18:40 fstab.xz
7、lzma格式压缩
[root@izpo45bh60h6bsz tmp]
# ls
fstab
[root@izpo45bh60h6bsz tmp]
# xz -F lzma fstab
[root@izpo45bh60h6bsz tmp]
# ls
fstab.bak.xz fstab.lzma issue pam.d
8、不展开文件查看文件的内容
[root@izpo45bh60h6bsz tmp]
# xzcat fstab.xz
#
# /etc/fstab
# Created by anaconda on Fri Feb 24 02:58:22 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=07151862-c2b9-45dc-bf7a-af8d2a6fa6c1 / ext3 defaults 1 1
/www/swap
swap swap defaults 0 0
9、静默模式,错误输出流不输出至标准输出
[root@izpo45bh60h6bsz tmp]
# xz fstab.xz
xz: fstab.xz: File already has `.xz' suffix, skipping
[root@izpo45bh60h6bsz tmp]
# xz -q fstab.xz
|
zip/unzip命令
使用示例
1
2
3
4
5
6
7
8
9
10
11
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
|
1、归档
[root@izpo45bh60h6bsz tmp]
# zip hello fstab.bak.xz fstab.xz issue.xz
[root@izpo45bh60h6bsz tmp]
# ls -lh
总用量 20K
-rw-r--r-- 1 root root 324 8月 13 18:40 fstab.bak.xz
-rw-r--r-- 1 root root 324 8月 13 18:40 fstab.xz
-rw-r--r-- 1 root root 1.2K 8月 13 18:54 hello.zip
-rw-r--r-- 1 root root 80 8月 13 18:39 issue.xz
2、展开
[root@izpo45bh60h6bsz tmp]
# ls
hello.zip pam.d
[root@izpo45bh60h6bsz tmp]
# unzip hello.zip
Archive: hello.zip
extracting: fstab.bak.xz
extracting: fstab.xz
extracting: issue.xz
[root@izpo45bh60h6bsz tmp]
# ls
fstab.bak.xz fstab.xz hello.zip issue.xz pam.d
3、归档目录
[root@izpo45bh60h6bsz tmp]
# find . -maxdepth 1 -type f -delete
[root@izpo45bh60h6bsz tmp]
# ls
pam.d
[root@izpo45bh60h6bsz tmp]
# zip pam.d.zip pam.d
[root@izpo45bh60h6bsz tmp]
# ll
总用量 8
drwxr-xr-x 2 root root 4096 8月 13 18:43 pam.d
-rw-r--r-- 1 root root 162 8月 13 18:58 pam.d.zip
4、展开归档
[root@izpo45bh60h6bsz tmp]
# mv pam.d pam.d.bak
[root@izpo45bh60h6bsz tmp]
# unzip pam.d.zip
Archive: pam.d.zip
creating: pam.d/
[root@izpo45bh60h6bsz tmp]
# ls
pam.d pam.d.bak pam.d.zip
[root@izpo45bh60h6bsz tmp]
# ls pam.d
5、归档目录
[root@izpo45bh60h6bsz tmp]
# zip pam.d.1.zip pam.d.bak/*
[root@izpo45bh60h6bsz tmp]
# zip -r pam.d.zip pam.d
6、展开归档
[root@izpo45bh60h6bsz tmp]
# unzip pam.d.zip
7、静默模式:展开时/归档时不显示多余的信息
[root@izpo45bh60h6bsz tmp]
# unzip -q pam.d.zip
|
tar命令
使用示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
1、创建归档
[root@izpo45bh60h6bsz tmp]
# tar cvf hello.tar ./*
2、展开归档
[root@izpo45bh60h6bsz tmp]
# tar xvf hello.tar
3、不展开,查看内容
root@izpo45bh60h6bsz tmp]
# tar tf hello.tar
4、展开至指定目录
[root@izpo45bh60h6bsz tmp]
# mkdir test
[root@izpo45bh60h6bsz tmp]
# tar xvf hello.tar -C test/
[root@izpo45bh60h6bsz tmp]
# ls test/
hello pam.d pam.d.1.zip pam.d.bak pam.d.zip
5、归档后以
bzip2
工具压缩
[root@izpo45bh60h6bsz tmp]
# tar jcf total.tar.bz2 ./*
total.
tar
.bz2
6、归档后以xz工具压缩
[root@izpo45bh60h6bsz tmp]
# tar Jcf total.tar.xz ./*
total.
tar
.xz
7、归档后以
gzip
工具压缩
[root@izpo45bh60h6bsz tmp]
# tar zcf total.tar.gz ./*
total.
tar
.gz
|