Linux压缩打包命令——tar、zip、unzip

打包跟压缩的区别:打包是指将多个文件或者目录放在一起,形成一个总的包,这样便于保存和传输,但是大小是没有变化的,压缩是指将一个或者多个大文件或者目录通过压缩算法使文件的体积变小以达到压缩的目的,可以节省存储空间,在压缩的时候通常是先打包再压缩;tar命令tar命令参数前面加”-“与不加“-”的区别:tar命令参数前面加不加“-”执行命令的结果是没有区别的,区别只要是在与linux风…

大家好,又见面了,我是你们的朋友全栈君。

 

打包跟压缩的区别:

打包是指将多个文件或者目录放在一起,形成一个总的包,这样便于保存和传输,但是大小是没有变化的,压缩是指将一个或者多个大文件或者目录通过压缩算法使文件的体积变小以达到压缩的目的,可以节省存储空间,在压缩的时候通常是先打包再压缩;

tar命令

tar命令参数前面加”-“与不加“-”的区别:

tar命令参数前面加不加“-”执行命令的结果是没有区别的,区别只要是在于linux风格方面,加“-”属于System V风格,不加“-”属于BSD风格,所以在使用tar命令的时候它的参数加不加“-”结果是一样的,看个人的使用方式;

常用参数:

tar命令的常用参数
-z 是否同时具有gz属性
-j 是否同时具有bz2属性
-J 是否同时具有xz属性
-x 解压缩、提取打包的内容
-t 查看压缩包内容
-c 建立一个压缩,打包文档
-C 切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录
-v 显示压缩或者打包的内容
-f 使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边
-p 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P 保留绝对路径

 

一、打包

实例:

a.将/root/下的ceshi.txt文件和anaconda-ks.cfg文件和time.sh文件打包为一个文件,名称为“jihe.tar”:

Linux压缩打包命令——tar、zip、unzip

b.查看jihe.tar文件的内容:

Linux压缩打包命令——tar、zip、unzip

c.提取jihe.tar文件的内容到/opt目录下:

Linux压缩打包命令——tar、zip、unzip

如果不用“-C”指定目录则会提取内容到当前目录

二、压缩

linux主要有三种压缩方式:
1.gzip:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式
2.bzip:压缩形成的文件小,但是可用性不如gzip
3.xz:是最新的压缩方式,可以自动提供最佳的压缩率

建议的压缩的时候标明后缀:

参数 作用 命名方式
-z 用于gzip压缩方式 文件名.tar.gz
-j 用于bzip2压缩方式 文件名.tar.bz2
-J 用于xz压缩方式 文件名.tar.xz

 

实例:用不同的压缩方式压缩/root/目录下的Golden.apk文件

先查看Golden.apk文件的大小:

Linux压缩打包命令——tar、zip、unzip

可以看到Golden.apk文件的大小为187M

a.用gzip压缩方式将Golden.apk文件压缩为Golden.apk.tar.gz文件:

Linux压缩打包命令——tar、zip、unzip

b.用bzip2的压缩方式将Golden.apk文件压缩为Golden.apk.tar.bz2文件:

Linux压缩打包命令——tar、zip、unzip

从上图可以看出红色方框内有报错,这个报错的原因是缺少bzip2的包,需要安装一个bzip2软件包

Linux压缩打包命令——tar、zip、unzip

安装完成之后再重新压缩:

Linux压缩打包命令——tar、zip、unzip

在压缩的过程中,我们可以发现:

压缩速度:gz > bz2 > xz
压缩率:xz > bz2 > gz

Linux压缩打包命令——tar、zip、unzip

三、解压

先删除/root/目录下的Golden.apk文件:

Linux压缩打包命令——tar、zip、unzip

tar命令式一个很聪明的命令,我们在解压的时候不需要指明自己压缩的方式它会自己选择跟压缩方式对应的方式去解压,这话说得有点拗口,例:

a.将Golden.apk.tar.gz解压到当前目录:

Linux压缩打包命令——tar、zip、unzip

在解压gz压缩方式压缩文件的时候并不需要加上-z,直接用参数-xf即可,另外两种压缩方式在解压的时候一样,因为tar命令会自动选择,解压之后压缩文件还在,如果不指定解压出来的文件保存在哪里,那么会直接解压在当前目录

b.指定解压出来的文件保存的目录,将Golden.apk.tar.bz2文件解压在/opt/目录下:

Linux压缩打包命令——tar、zip、unzip

补充:

a.在打包和压缩的过程中,我们有时候会看到这样的语句:tar: 从成员名中删除开头的“/”,这个并不是报错,是因为没有加上-P选项,没有保留原来的绝对路径去打包或者压缩,提取打包的内容跟解压一样,下面举一个例子:

将/root/目录以gzip的方式压缩为root.tar.gz压缩文件:

1.没有加-P选项:

Linux压缩打包命令——tar、zip、unzip

2.加上-P选项:

Linux压缩打包命令——tar、zip、unzip

解压的时候同理,如果在压缩文件的时候使用了-P选项,那么在解压的时候也要加上-P选项,不然也会出现”tar: 从成员名中删除开头的“/”“,如下图:

1.不加-P选项解压使用了-P选项压缩/root/后的root.tar.gz文件:

Linux压缩打包命令——tar、zip、unzip

2.加上-P选项解压使用了-P选项压缩/root/后的root.tar.gz文件:

Linux压缩打包命令——tar、zip、unzip

b.在使用tar压缩或者打包的时候,可以通过增加–exclude来达到排除指定的文件的目的

将/root/目录下的harry目录打包,但是不打包harry目录下的ha.txt文件,如下图:

Linux压缩打包命令——tar、zip、unzip

压缩文件也是同理,想要排除指定的目录压缩或者打包也是同理

zip命令和unzip命令

#在使用zip跟unzip命令之前先查看系统有没有安装这两个命令的包,没有的话要自己安装
查看有没有安装zip跟unzip命令的命令:

rpm -q zip unzip

Linux压缩打包命令——tar、zip、unzip

如果有安装了命令则会显示出命令的版本号

zip命令

基本用法:

zip [参数] [压缩包名] [压缩的目录或者文件的路径]

常用参数:

zip命令的常用参数
-m 将文件压缩后,删除原文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩的时间
-q 安静模式,在压缩的时候不显示指令执行的过程
-r 递归压缩,将自定目录下的所有子文件以及文件一起处理
-x ”文件列表“,压缩时排除文件列表中的文件

 

实例:

a.压缩目录,将/root/目录下的harry目录压缩为名为harry.zip压缩包:

1.正常压缩,不加-q选项,显示压缩的过程:

Linux压缩打包命令——tar、zip、unzip

2.加上-q选项,安静模式输出,不显示压缩的过程:

Linux压缩打包命令——tar、zip、unzip

b.压缩多个文件,将/root/目录下的ceshi.txt文件和anaconda-ks.cfg文件和Golden.apk文件压缩为名为jihe.zip的压缩包:

因为压缩的全是文件,所以可以不用加上-r选项

Linux压缩打包命令——tar、zip、unzip

c.压缩文件跟目录,将/root/下的ceshi.txt文件和anaconda-ks.cfg文件和harry目录压缩成名为dajihe.zip的压缩包:

Linux压缩打包命令——tar、zip、unzip

d.将/root/目录下的harry目录压缩为harry1.zip压缩包,排除harry目录下的ha.txt文件:

Linux压缩打包命令——tar、zip、unzip

unzip命令

基本用法:

unzip [参数] [压缩文件]  (-d [目录])  //如果不是用括号里面的内容,则解压文件在当前工作目录

常用参数:

unzip命令的常用参数
-c 将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包
-l 显示压缩文件内所包含的文件
-t 检查压缩文件是否正确
-v 执行时显示压缩文件的详细信息
-q 安静模式,执行时不显示任何信息
-d 指定文件解压后存储的目录
-x 指定不要处理压缩文件中的那些文件

实例:

a.将harry.zip压缩包解压缩的结果显示出来:

Linux压缩打包命令——tar、zip、unzip

具体会显示到每一个文件跟每一个文件的内容

b.显示jihe.zip压缩包里面锁包含的文件

Linux压缩打包命令——tar、zip、unzip

c.检查dajihe.zip压缩文件是否正确:

Linux压缩打包命令——tar、zip、unzip

全部OK表示全部文件都是正确的

d.不解压压缩文件dajihe.zip,查看压缩包里面的内容(查看显示的文件列表还包含压缩比率):

Linux压缩打包命令——tar、zip、unzip

#使用-v显示的信息比使用-l显示的信息更加详细

e.将dajihe.zip压缩包解压到/opt/目录下:

Linux压缩打包命令——tar、zip、unzip

补充:使用r选项增加.tar归档文件的内容应该如何怎么操作?

我们先来了解一下tar命令-r选项的作用:

Linux压缩打包命令——tar、zip、unzip

通过tar –help命令查看帮助

-r选项的作用:把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中

使用实例:

Linux压缩打包命令——tar、zip、unzip

看上图,可以看到我ops用户家目录下标记了一个文件,一个目录,我现在先将目录归档,然后再将文件追加到档案里面

1.归档操作

Linux压缩打包命令——tar、zip、unzip

生成.tar文件,目录归档完毕!

2.将calculating_time.sh追加进入.tar文件中

Linux压缩打包命令——tar、zip、unzip

3.验证

a.查看.tar文件的归档信息

Linux压缩打包命令——tar、zip、unzip

Linux压缩打包命令——tar、zip、unzip

可以看到calculating_time.sh文件已经被追加到档案的末尾了

b.提取Check_Configuration_20201118_PM.tar 到/mnt目录下

Linux压缩打包命令——tar、zip、unzip

使用-r选项追加文件至.tar文件成功

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125668.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 404错误页面的设置方法步骤(图)附404模板下载

    404错误页面的设置方法步骤(图)附404模板下载

  • ExtJS学习教程

    ExtJS学习教程首先在学习ExtJS之前我们必须有htmlcss以及JavaScript的基础其次我们要了解在何种开发(什么类型的项目)时应该使用此前端框架与各种js框架一样 使用ExtJS也需要类库文件可以在官方下载也可以根据官方的源码进行分析使用https://www.w3cschool.cn/extjs/留存己用 1.什么是ExtJs?ExtJS可以用来开发RIA也即富…

  • 使能DHCP Relay_option键的作用

    使能DHCP Relay_option键的作用DHCP一家子(不包括DHCPv6)包括DHCPClient、DHCPServer、DHCPRelay以及DHCPSnooping,之后我会一个个详细学习之后发出来。今天讲述一下DHCPrelay,之前先学习的DHCPSever,还没来得及整理,之后会发出来,今天先说说DHCPRelay。DHCPRelay(DHCP中继),也叫作DHCPAgent,主要用于DHCPClient和DHCPServer不在一个网段时,DHCPClient又有自动地址分配的请…

    2022年10月15日
  • 五种常用手机Java编程软件[通俗易懂]

    五种常用手机Java编程软件[通俗易懂]越来越多的朋友都对编程感兴趣,编程需要工具,所以大家也想知道有哪些好用的java编程工具,接下来系哦啊吧就为大家介绍几款常用的相关编程工具。1.JDKJDK-java开发工具包JDK是Java开发工具包,基本上每个研究java的人都首先在机器上安装JDK,那么他有哪些部件呢?下面是运行java时真正工作的四个文件夹:bin、include、lib、jrebin:是最重要的是编译器包括:java和jvm与头文件lib:类库jre:java运行时环境的交互一般用于java程序的开发,而jre只运行类而不编译

  • ELK入门——ELK详细介绍(ELK概念和特点、Elasticsearch/Logstash/beats/kibana安装及使用介绍、插件介绍)

    ELK入门——ELK详细介绍(ELK概念和特点、Elasticsearch/Logstash/beats/kibana安装及使用介绍、插件介绍)主要参考链接ES内容大全(Elastic中国社区官方博客)ES视频教程(Elastic中国社区官方博客)Elastic相关软件和插件(官网)ES中文社区(讨论和提问)我的ELK专栏Linux操作(鸟哥的私房菜)Linux常用命令一、什么是ELK(端口9200)ELK学习总结——我们为什么要用ELK一般我们需要进行日志分析场景:直接在日志文件中grep、awk就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢

    2022年10月26日
  • Python IDE —— PyCharm的基本介绍「建议收藏」

    Python IDE —— PyCharm的基本介绍「建议收藏」本文由Markdown语法编辑器编辑完成。PyCharm的介绍:PyCharm是一款Python的IDE的编辑工具,它是由Jetbrains出品的产品。之前我在做Web项目,前端撰写JavaScript代码时,就是用的他们公司出品的前端开发神器WebStorm。因此,也一直对他们的产品很感兴趣,而且,如果是同一个公司的产品,在很多设置上都是相同的,也可以减少一些学习成本。PyCharm的官网地址

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号