Linux CentOS 7 中打包压缩工具gzip、bzip2、xz、zip、tar

简介:

一、 压缩打包介绍

常见压缩文件

windows .rar  .zip  .7z
linux: .rar .zip .gz .bz2 .xz .tar.gz .tar.bz2  .tar.xz

二、 gzip压缩工具

gzip压缩文件:

gzip 只能压缩文件不能压缩目录.**gzip 1.txt 压缩完成原文件删除**生成1.txt文件:

find /etc/ -type f -name  "*.conf" -exec cat {} >> /tmp/fxq/1.txt \;
# ls -lh /tmp/fxq/1.txt -rw-r--r-- 1 root root 2.3M Aug 23 22:01 /tmp/fxq/1.txt

1. gzip压缩文件

# gzip /tmp/fxq/1.txt# ls -lhtotal 620K
-rw-r--r-- 1 root root 610K Aug 23 22:01 1.txt.gz

2. gzip解压缩

unzip 1.txt.gzgzip -d 1.txt.gz
# gzip -d 1.txt.gz # ll -htotal 2.3M
-rw-r--r-- 1 root root 2.3M Aug 23 22:01 1.txt

3. gzip指定压缩级别:

默认是6级别# gzip -9 1.txt

4. zcat查看文件内容

# zcat 1.txt.gz

5. gzip压缩后不删除原文件

# gzip -c 1.txt > /tmp/1.txt.gz

6. gzip压缩后必名并指定路径存放

# gzip -d -c /tmp/1.txt.gz > /tmp/2.txt.gz

7. gunzip解压缩后改名并指定路径存放

# gunzip -d -c /tmp/2.txt.gz > /tmp/fxq/3.txt

三、 bzip2压缩工具

bzip2 比gzip 压缩能力更强

# ll -hltotal 292K
-rw-r--r-- 1 root root 281K Aug 23 22:01 1.txt.bz2

1. bzip2压缩文件不删除原文件

# bzip2 1.txt

2. bzip2压缩文件不删除原文件

# bzip2 -c 1.txt > /tmp/1.txt.bz2

3. bunzip2解压文件到指定路径:

# bunzip2 -d -c /tmp/1.txt.bz2 > 3.txt

4. bzip2压缩级别:

# bzip2 -9 1.txt默认压缩级别9.

5. bzcat查看文件内容

# bzcat 1.txt.bz2
# file 2.txt  查看文件类型。

四、 xz压缩工具

xz压缩能力比gzip和bzip2都要强。使用方法基本上和gzip一样.

1. xz压缩文件

# xz  1.txt

2. xz压缩级别:

# xz -9 1.txt默认压缩级别9.

3. xz压缩不删除原文件

# xz -d 2.txt.xz

4. unxz解压缩文件

# unxz 2.txt.xz

5. xz保留原文件,解压到指定路径

3&nbsx;8z -c 2.txt  /tmp/2.txt.xz

6. xz查看文件内容

# xzcat 1.txt.xz

五、zip压缩工具

1压缩后不删除原文件

zip 1.txt.zip 1.txtzip -r selinux.zip selinux/
[root@0 fxq]# ls1.txt  selinux  selinux.zip
[root@0 fxq]# zip 1.txt.zip 1.txt 
  adding: 1.txt (stored 0%)
[root@0 fxq]# ls1.txt  1.txt.zip  selinux  selinux.zip
[root@0 fxq]#
[root@0 fxq]# lsselinux
[root@0 fxq]# zip selinux.zip selinux/
  adding: selinux/ (stored 0%)
[root@0 fxq]# lsselinux  selinux.zip

2 解压缩文件:

unzip dir.zip
[root@0 fxq]# lsselinux
[root@0 fxq]# zip selinux.zip selinux/
  adding: selinux/ (stored 0%)
[root@0 fxq]# lsselinux  selinux.zip
[root@0 fxq]# rm -rf selinux[root@0 fxq]# lsselinux.zip
[root@0 fxq]# unzip selinux.zip Archive:  selinux.zip
   creating: selinux/
[root@0 fxq]# lsselinux  selinux.zip
[root@0 fxq]#

3 zip解压到指定目录:

unzip dir.zip -d /root/

4 查看压缩包内的文件列表

unzip -l dir.zip

六、 tar打包

tar打包工具:

1tar打包

# tar -cvf selinux.tar selinux

2tar 解包(文件存在时不提示覆盖)

# tar -xvf selinux.tar

3tar 查看打包内的文件列表

# tar -tf selinux.tar

4打包时过滤部分目录或文件

# tar -cvf all.tar --exclude semanage.conf.bak selinux/
[root@0 fxq]# tree selinuxselinux
|-- semanage.conf.bak
`-- targeted
    `-- setrans.conf.bak1 directory, 2 files
[root@0 fxq]# [root@0 fxq]# tar -cvf all.tar --exclude semanage.conf.bak selinuxselinux/
selinux/targeted/
selinux/targeted/setrans.conf.bak
[root@0 fxq]# ls1.txt.bz2.xz  all.tar  selinux  selinux.zip
[root@0 fxq]# tar -tf all.tar  selinux/
selinux/targeted/
selinux/targeted/setrans.conf.bak
[root@0 fxq]#

七、tar 打包并压缩

(1) tar打包成.gz文件:

# tar -czvf selinux.tar.gz selinux
[root@0 fxq]# ls1.txt.bz2.xz  all.tar  selinux  selinux.zip[root@0 fxq]# tar -czvf selinux.tar.gz selinuxselinux/selinux/semanage.conf.bakselinux/targeted/selinux/targeted/setrans.conf.bak[root@0 fxq]# ls1.txt.bz2.xz  all.tar  selinux  selinux.tar.gz  selinux.zip

(2) tar打包成.bz2文件:

# tar -cjvf selinux.tar.bz2 selinux[root@0 fxq]# tar -cjvf selinux.tar.bz2 selinuxselinux/selinux/semanage.conf.bakselinux/targeted/selinux/targeted/setrans.conf.bakYou have new mail in /var/spool/mail/root
[root@0 fxq]# ls1.txt.bz2.xz  selinux          selinux.tar.gzall.tar       selinux.tar.bz2  selinux.zip

(3) tar打包成.xz文件:

# tar -cJvf selinux.tar.xz selinux
[root@0 fxq]# tar -cJvf selinux.tar.xz selinuxselinux/
selinux/semanage.conf.bak
selinux/targeted/
selinux/targeted/setrans.conf.bak
[root@0 fxq]# ls 1.txt.bz2.xz  selinux          selinux.tar.gz  selinux.zip
all.tar       selinux.tar.bz2  selinux.tar.xz
[root@0 fxq]# lltotal 316-rw-r--r-- 1 root root 285092 Aug 23 22:01 1.txt.bz2.xz
-rw-r--r-- 1 root root  10240 Aug 24 22:55 all.tar
drwxr-xr-x 3 root root   4096 Aug 14 21:43 selinux
-rw-r--r-- 1 root root   1736 Aug 24 23:01 selinux.tar.bz2
-rw-r--r-- 1 root root   1689 Aug 24 23:00 selinux.tar.gz
-rw-r--r-- 1 root root   1728 Aug 24 23:01 selinux.tar.xz
-rw-r--r-- 1 root root    166 Aug 24 22:35 selinux.zip

(4) tar查看压缩包内文件列表:

# tar -tf selinux.tar.xz
[root@0 fxq]# tar -tf selinux.tar.xzselinux/selinux/semanage.conf.bakselinux/targeted/selinux/targeted/setrans.conf.bak[root@0 fxq]#

八、测试题

1. gzip, bzip2 能否直接压缩目录呢

2. 请快速写出使用gzip和bzip2压缩和解压一个文件的命令。

3. tar 在打包的时候如果想排除多个文件或者目录如何操作

4. 请实验如果不加 "-" 是否正确 如 tar zcvf  1.tar.gz  1.txt 2.txt ?

5. 如何使用tar打包和解包 .tar.gz, .tar.bz2 的压缩包

6. 找一个大点的文件使用tar 分别把这个文件打成 .tar.gz和.tar.bz2 压缩包比较一下哪个包会更小从而得出结论是gzip压缩效果好还是bzip2压缩效果好

7. 使用tar打包并压缩的时候默认压缩级别为几 想一想如何能够改变压缩级别呢提示tar本身没有这个功能哦可以尝试拆分打包和压缩
1.不能
2.gzip 1.txt.gz 1.txt 
  ungzip 1.txt.gz
  gzip -c 1.txt.gz
  bzip2 1.txt.bz2 1.txt
  bunzip2 1.txt.bz23.tar -czvf all.tar.gz --exclude 1.txt --exclude 2.txt ./*
4.可以不加-
5.tar -zcvf all.tar.gz all/
    tar -zxvf all.tar.gz
    tar -jcvf all.tar.bz2 all/
    tar -jxvf all.tar.bz2
6.bz2比gz压缩强:
[root@0 fxq]# ll
total 2316
-rw-r--r-- 1 root root 2362256 Aug 24 23:29 1.txt
drwxr-xr-x 2 root root    4096 Aug 14 21:43 selinux
[root@0 fxq]# tar -zcvf 1.txt.tar.gz 1.txt 
1.txt
[root@0 fxq]# tar -jcvf 1.txt.tar.bz2 1.txt
1.txt
[root@0 fxq]# ll
total 3220
-rw-r--r-- 1 root root 2362256 Aug 24 23:29 1.txt
-rw-r--r-- 1 root root  288262 Aug 24 23:30 1.txt.tar.bz2
-rw-r--r-- 1 root root  624127 Aug 24 23:29 1.txt.tar.gz
drwxr-xr-x 2 root root    4096 Aug 14 21:43 selinux
[root@0 fxq]# 

7.




习题答案
1. gzip, bzip2 能否直接压缩目录呢
不能直接压缩目录

2. 请快速写出使用gzip和bzip2压缩和解压一个文件的命令。
gzip 1.txt
gzip -d 1.txt.gz
bzip2 1.txt
bzip2 -d 1.txt.bz2

3. tar 在打包的时候如果想排除多个文件或者目录如何操作
tar cvf 123.tar --exclude a.txt --exclude b.txt 123/

4. 请实验如果不加 "-" 是否正确 如 tar zcvf  1.tar.gz  1.txt 2.txt ?
不加 - 一样没有问题

5. 如何使用tar打包和解包 .tar.gz, .tar.bz2 的压缩包
tar zcvf  1.tar.gz 1
tar zxvf 1.tar.gz
tar jcvf 1.tar.bz2 1
tar jxvf 1.tar.bz2

6. 找一个大点的文件使用tar 分别把这个文件打成 .tar.gz和.tar.bz2 压缩包比较一下哪个包会更小从而得出结论是gzip压缩效果好还是bzip2压缩效果好
理论上.tar.bz2的压缩包小一些但个别时候有相反的情况。但大多时候bzip2压缩效果好。

7. 使用tar打包并压缩的时候默认压缩级别为几 想一想如何能够改变压缩级别呢提示tar本身没有这个功能哦可以尝试拆分打包和压缩
tar打包压缩时是按照gzip和bzip2的默认压缩级别来的gzip工具默认压缩级别为6bzip2默认压缩级别为9.
改变默认压缩级别可以这样来做首先tar打包然后再使用gzip或者bzip2压缩工具来压缩压缩的时候指定压缩级别。如  tar cvf 1.tar 123/;  gzip -2 1.tar

九、知识拓展

1利用tar 通过网络拷贝数据

实现不同机器间传输文件自动打包解包。
[root@fxq-0 ~]# mkdir test{1..10}
[root@fxq-0 ~]# ls
anaconda-ks.cfg  test1   test2  test4  test6  test8
test0            test10  test3  test5  test7  test9
[root@fxq-0 ~]#&nbst;
tgsd0/
test1/
test10/
test2/
test3/
test4/
test5/
test6/
test7/
test8/
test9/
test0/
test1/
test10/
test2/
test3/
test4/
test5/
test6/
test7/
test8/
test9/
[root@fxq-0 ~]# ssh 192.168.42.181
Last login: Thu Aug 17 04:20:20 2017 from 192.168.42.180
[root@fxq-1 ~]# ls /tmp
test0  test10  test3  test5  test7  test9
test1  test2   test4  test6  test8
[root@fxq-1 ~]#

2Tar打包、压缩与解压缩到指定目录的方法

 解压到指定的目录 :-C加目录

[root@fxq ~]# tar -zxvf /home/images.tar.gz -C /specific dir

3linux下不支持解压大于4G的zip压缩包

1.下载
wget  2.安装
rpm -ivh p7zip-16.02-2.el7.x86_64.rpm
3.解压命令大于4G文件
 # 7z  x  123.zip


本文转自 枫叶云  51CTO博客,原文链接:http://blog.51cto.com/fengyunshan911/1959844

相关文章
在Linux中,列出几种常见打包工具并写相应解压缩参数。
在Linux中,列出几种常见打包工具并写相应解压缩参数。
|
前端开发 Unix Linux
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
本文详细介绍了 `electron-builder` 在 Linux 平台上如何打包 Electron 应用程序,涵盖了 AppImage、Flatpak、Snap 等多种格式的打包原理和具体实现。文章从初始化 `LinuxPackager` 到创建各种目标格式的包,详细解析了每个步骤的代码逻辑和关键方法,帮助开发者更好地理解和使用 `electron-builder` 进行 Linux 应用的打包。
998 2
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
|
算法 Linux 数据安全/隐私保护
“Linux压缩大师”:gzip、bzip2、tar与zip
在Linux系统管理中,文件压缩与解压至关重要,能有效减少存储空间占用并加快文件传输。常用工具包括gzip、bzip2、tar和zip。gzip采用Lempel-Ziv算法,压缩率高且速度快,适用于单个文件压缩,扩展名为.gz。bzip2压缩率更高但速度稍慢,同样用于单个文件,扩展名为.bz2。tar主要用于打包文件而不直接压缩,常与gzip或bzip2结合使用实现压缩打包。zip则是一种通用压缩工具,支持多文件压缩及密码保护,兼容性好。这些工具让Linux环境下的文件管理更加高效便捷。
905 1
|
Linux 数据安全/隐私保护 Python
LInux下 python混淆代码打包产出exe
安装 PyArmor 加密Python程序:使用`pip install pyarmor`。为避免混淆 venv 目录,可指定排除此目录:`.\/venv\/bin\/pyarmor-7 pack -e \"--onefile\" -x \"--exclude venv\" main.py`。查阅详细文档:[官方指南](https://pyarmor.readthedocs.io/zh/v7.x/advanced.html)。
|
存储 Linux Windows
Linux zip命令:压缩文件或目录
我们经常会在 Windows 系统上使用 “.zip”格式压缩文件,其实“.zip”格式文件是 Windows 和 Linux 系统都通用的压缩文件类型,属于几种主流的压缩格式(zip、rar等)之一,是一种相当简单的分别压缩每个文件的存储格式,本节要讲的 zip 命令,类似于 Windows 系统中的 winzip 压缩程序,其基本格式如下: [root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表 注意,zip 压缩命令需要手工指定压缩之后的压缩包名,注意写清楚扩展名,以便解压缩时使用。 下面给大家举几个例子。 【例 1】zip 命令的基本使用。 [r
672 0
Linux zip命令:压缩文件或目录
|
Linux C# C++
【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
231 0
|
Linux
【Linux系统】使用g = GloveEmbedding()报错BadZipFile: File is not a zip file
本文讨论了在使用embeddings工具包时遇到的“BadZipFile: File is not a zip file”错误,原因是程序中断导致zip文件损坏,解决方法是删除损坏的文件并重新运行程序,具体操作是在Linux系统中删除“~/.embeddings/”目录下的glove文件夹。
302 0
|
Shell 数据安全/隐私保护 Linux
CentOS7安装7zip&&iftop
p7zip_15.14.1编译安装 #!/bin/bash cd /usr/loacal/src wget http://120.
1014 0
|
10月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
1534 69
|
9月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
3681 3