Linux之压缩解压缩及归档工具的使用

简介:

压缩工具

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









本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1955942,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
安全 Linux Shell
四、Linux核心工具:Vim, 文件链接与SSH
要想在Linux世界里游刃有余,光会“走路”还不够,还得配上几样“高级装备”。首先是Vim编辑器,它像一把瑞士军刀,让你能在命令行里高效地修改文件。然后要懂“软硬链接”,软链接像个快捷方式,硬链接则是给文件起了个别名。最后,SSH是你的“传送门”,不仅能让你安全地远程登录服务器,还能用scp轻松传输文件,设置好密钥更能实现免-密登录,极大提升效率。
458 4
|
5月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
497 16
|
5月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
287 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
7月前
|
缓存 监控 Linux
Linux系统性能调优技巧和相关工具
Linux 作为一种应用应展和系统服务的优选操作系统,在处理性能和端到端点评估上持有出色表现。但是,在处理进程或系统处于低效状态时,性能调优就显得十分重要。本文将探讨一些 Linux 系统性能调优的常用技巧,并介绍相关工具
217 1
Linux系统性能调优技巧和相关工具
|
7月前
|
Linux 数据安全/隐私保护 iOS开发
推荐Linux环境下效能优良的双向文件同步工具
综合上述条件,对于Linux环境下的双向文件同步需求,Unison 和 Syncthing 是两个非常出色的选择。它们都有良好的社区支持和文档资源,适用于不同规模的环境,从个人使用到商业部署。Unison 特别适合那些需要手动干预同步过程、需要处理文件冲突解决的场景。而 Syncthing 更加现代化,适合需要自动、实时的数据同步与备份的环境。对于选择哪一个,这将取决于个人的使用场景和具体需求。
838 16
|
6月前
|
数据采集 编解码 运维
一文讲完说懂 WowKey -- WowKey 是一款 Linux 类设备的命令行(CLT)运维工具
WowKey 是一款面向 Linux 类设备的命令行运维工具,支持自动登录、批量执行及标准化维护,适用于企业、团队或个人管理多台设备,显著提升运维效率与质量。
26Linux - 文件管理(文件压缩解压:bzip2)
26Linux - 文件管理(文件压缩解压:bzip2)
185 0
|
算法 Linux
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
|
Linux
Linux压缩与解压“助手”
gzip压缩解压 因为都是系统自带的我们不需要安装; ls 看一下目录当前的文件,创建一个 touch 123.txt 文件; 原文件消失,压缩解压 gzip 进行压缩,(“ gzip 123.txt ”),这样就压缩完毕了; gzip 进行解压,(“ gzip -d 123.txt.gz”),这样就解压完毕了; 原文件保留,gzip -k 123.txt、gzip -dk 123.txt.gz ;
258 9