对于tar包、压缩包等相关概念的深入解释
- tar 命令用来打包
- gzip、bzip命令用来压缩、解压缩
起初tar
命令并不具备压缩功能,其仅仅是个打包工具,因为有的时候目录文件是不可以在某些地方进行传输的,所以需要打包成一个包文件,还有一个原因就是,目录文件是不可以直接进行压缩的,所以需要先打包一下
后来因为传输需要进行压缩,这样一来能快速传输,二来可以节省空间,所以可以使用压缩工具对包进行压缩,产生以.gz
和.bz2
结尾的压缩文件
至此相当于经历了打包和压缩两个步骤,但是实际应用中,总是分两步来做就显得有些麻烦,于是tar
命令有了参数可以使用,这些参数有:
参数
|
作用
|
-c(小写)
|
创建压缩文件
|
-x
|
解开压缩文件
|
-t
|
查看压缩包内有哪些文件
|
-z
|
用Gzip格式压缩或者解压
|
-j(小写)
|
用bzip2格式压缩或者解压
|
-J(大写)
|
用xz格式进行压缩或者解压
|
-v
|
显示压缩或者解压的过程
|
-f
|
目标文件名
|
-p(小写)
|
保留原始的权限与属性
|
-P(大写)
|
使用绝对路径来压缩
|
-C(大写)
|
指定解压到的目录
|
其中需要额外解释的是,-v
参数一般情况下最好加一下,因为有时候,执行压缩或者解压缩操作时,可能需要花费比较长的时间,如果屏幕一直没有输出,一方面不好判断进度情况,另一方面也会怀疑电脑是不是死机了。
-f
参数也很重要,必须放在参数的最后一位
,代表要压缩或者解压到哪个指定的目录
下面前后对比一下tar命令有了参数前后的变化
1、首先是没有用tar的压缩参数:
#mermaid-svg-ztMOSEihwP9hcyuX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ztMOSEihwP9hcyuX .error-icon{fill:#552222;}#mermaid-svg-ztMOSEihwP9hcyuX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ztMOSEihwP9hcyuX .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-ztMOSEihwP9hcyuX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ztMOSEihwP9hcyuX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ztMOSEihwP9hcyuX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ztMOSEihwP9hcyuX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ztMOSEihwP9hcyuX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ztMOSEihwP9hcyuX .marker.cross{stroke:#333333;}#mermaid-svg-ztMOSEihwP9hcyuX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ztMOSEihwP9hcyuX .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ztMOSEihwP9hcyuX .cluster-label text{fill:#333;}#mermaid-svg-ztMOSEihwP9hcyuX .cluster-label span{color:#333;}#mermaid-svg-ztMOSEihwP9hcyuX .label text,#mermaid-svg-ztMOSEihwP9hcyuX span{fill:#333;color:#333;}#mermaid-svg-ztMOSEihwP9hcyuX .node rect,#mermaid-svg-ztMOSEihwP9hcyuX .node circle,#mermaid-svg-ztMOSEihwP9hcyuX .node ellipse,#mermaid-svg-ztMOSEihwP9hcyuX .node polygon,#mermaid-svg-ztMOSEihwP9hcyuX .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ztMOSEihwP9hcyuX .node .label{text-align:center;}#mermaid-svg-ztMOSEihwP9hcyuX .node.clickable{cursor:pointer;}#mermaid-svg-ztMOSEihwP9hcyuX .arrowheadPath{fill:#333333;}#mermaid-svg-ztMOSEihwP9hcyuX .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ztMOSEihwP9hcyuX .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ztMOSEihwP9hcyuX .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-ztMOSEihwP9hcyuX .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-ztMOSEihwP9hcyuX .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ztMOSEihwP9hcyuX .cluster text{fill:#333;}#mermaid-svg-ztMOSEihwP9hcyuX .cluster span{color:#333;}#mermaid-svg-ztMOSEihwP9hcyuX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ztMOSEihwP9hcyuX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
tar命令
gzip命令
bzip2命令
xx
xx.tar
xx.tar
xx.tar.gz
xx.tar
xx.tar.bz2
根据上述流程,可以看到主要分成了两步,第一步是tar命令打包成包文件,第二部是进行压缩(有.gz和.bz2两种格式可以选择)
2、因为tar命令有参数,加了参数后就可以直接打包压缩:
#mermaid-svg-kLUx6zURihyfzLIG {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kLUx6zURihyfzLIG .error-icon{fill:#552222;}#mermaid-svg-kLUx6zURihyfzLIG .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-kLUx6zURihyfzLIG .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-kLUx6zURihyfzLIG .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-kLUx6zURihyfzLIG .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-kLUx6zURihyfzLIG .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-kLUx6zURihyfzLIG .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-kLUx6zURihyfzLIG .marker{fill:#333333;stroke:#333333;}#mermaid-svg-kLUx6zURihyfzLIG .marker.cross{stroke:#333333;}#mermaid-svg-kLUx6zURihyfzLIG svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-kLUx6zURihyfzLIG .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-kLUx6zURihyfzLIG .cluster-label text{fill:#333;}#mermaid-svg-kLUx6zURihyfzLIG .cluster-label span{color:#333;}#mermaid-svg-kLUx6zURihyfzLIG .label text,#mermaid-svg-kLUx6zURihyfzLIG span{fill:#333;color:#333;}#mermaid-svg-kLUx6zURihyfzLIG .node rect,#mermaid-svg-kLUx6zURihyfzLIG .node circle,#mermaid-svg-kLUx6zURihyfzLIG .node ellipse,#mermaid-svg-kLUx6zURihyfzLIG .node polygon,#mermaid-svg-kLUx6zURihyfzLIG .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-kLUx6zURihyfzLIG .node .label{text-align:center;}#mermaid-svg-kLUx6zURihyfzLIG .node.clickable{cursor:pointer;}#mermaid-svg-kLUx6zURihyfzLIG .arrowheadPath{fill:#333333;}#mermaid-svg-kLUx6zURihyfzLIG .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-kLUx6zURihyfzLIG .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-kLUx6zURihyfzLIG .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-kLUx6zURihyfzLIG .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-kLUx6zURihyfzLIG .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-kLUx6zURihyfzLIG .cluster text{fill:#333;}#mermaid-svg-kLUx6zURihyfzLIG .cluster span{color:#333;}#mermaid-svg-kLUx6zURihyfzLIG div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-kLUx6zURihyfzLIG :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
tar加-z参数
tar加-j参数
xx.tar
xx.tar.gz
xx.tar
xx.tar.bz2
显而易见,第二种方式比较方便,可以将打包与压缩合并一起进行,只需要在使用tar命令时选择适当参数即可
一般地可以这样使用
[root@localhost ~]# tar -czvf etc.tar.gz /etc/ #将/etc/下的文件以Gzip格式压缩,压缩过程进行显示,压缩后名字为etc.tar.gz
#此命令压缩之后的etc.tar.gz文件被保存在当前目录下[root@localhost ~]# tar -cjvf etc.tar.bz2 /etc/ #将/etc/下的文件以bzip2格式压缩,压缩过程进行显示,压缩后名字文etc.tar.bz2
#压缩后的etc.tar.bz2文件被保存在当前目录下[root@localhost ~]# tar -xzvf etc.tar.gz -C /root/etc #将etc.tar.gz文件以Gzip格式解压,解压过程进行显示,解压到/root/etc下[root@localhost ~]# tar -xjvf etc.tar.bz2 -C /root/etc #将etc.tar.bz2文件以bzip2格式解压,解压过程进行显示,解压到/root/etc下
总结:
tar打包和(Gzip、bz2)压缩实际上根本没有半毛钱关系,只是tar命令顺带帮你提供了压缩、解压的参数而已
需要注意的是:
假如有一个文件名为xxx.gz
,根据后缀可以判断出来,其并不是由tar包进行压缩得来的包压缩文件,而是直接由一个不是文件夹(目录)的文件直接压缩得到的普通压缩文件,所以这个时候对其进行解压,不应使用tar -xzvf
,而是使用gunzip解压
xxx.bz2
的文件也是同样的道理,对其进行解压不应使用tar -xjvf
,而是使用bunzip2进行解压
另外需要注意的还有:
单纯就压缩与解压而言,除了Gzip–>.gz
、bz2–>.bz2
的方式进行压缩之外,还有zip–>.zip
的压缩方式,同时这种压缩格式也经常出现在windows平台上
其他的压缩与解压方式、格式还有很多,不一一列举,仅举以上常用的格式,相信这个对于tar包和压缩的深入理解,会利于快速掌握对应的命令,否则死记硬背很容易忘记
–>有助于理解压缩包解压工具,建议收藏<–
深入理解tar包的压缩与解压相关推荐
- linux命令:tar(打包、压缩、解压)
一.tar命令语法 1.命令格式 tar[必要参数][选择参数][文件] 2.命令功能 用来压缩和解压文件.tar本身不具有压缩功能.他是调用压缩功能实现的. 3.命令参数 (1) 必要参数: 参数 ...
- Java Jar包的压缩、解压使用指南
转载自 Java Jar包的压缩.解压使用指南 什么是jar包 JAR(Java Archive)是Java的归档文件,它是一种与平台无关的文件格式,它允许将许多文件组合成一个压缩文件. 如何打/解包 ...
- tar命令 文件压缩与解压
tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在 ...
- linux tar (打包、压缩、解压)命令
打包程序:tar c: 创建文档 t: 列出存档内容 x:提取存档 f: filename 要操作的文档名 v:详细信息 一:打包 打包:是指把文件整合在一起,不压缩 1.将文件打包:tar cf ...
- linux 解压rar密码,linux下rar包的压缩与解压方案
方法一: yum install unrar 方法二: 下载地址: 以最新的为准.对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1:对于.zip linux ...
- python tar.gz格式压缩、解压
压缩 代码 import tarfile import os def tar(fname):t = tarfile.open(fname + ".tar.gz", "w: ...
- linux tar打包、压缩、解压到指定目录
1.前言 运维工作中经常需要压缩传输文件,常用的有zip.unzip和tar,本篇讲解一下常用的tar命令 2.代码实现 tar参数: -c :create 建立压缩档案的参数: -x : 解压缩压缩 ...
- Linux 下zip包的压缩与解压
linux zip 命令详解 功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符 ...
- linux 压缩文件解压到到指定的目录
工作中经常碰到把一个压缩文件解压到指定的目录下面,例如把/home/ybj/Desktop目录下的 httpd-2.2.15.tar.gz 这个压缩文件解压到 /home/ybj 这里:tar zxv ...
最新文章
- 15个热门的编程趋势及15个逐步走向衰落的编程方向
- 深入理解Linux内核之主调度器
- 设置成员操作符--inside
- 上半年全国游戏市场销售收入近1400亿元 用户规模近6.6亿人
- mysql查询id为5的数据类型_MySql学习05---数据类型
- 窗口设置的一般操作方法
- 机器学习基石——作业2解答
- 电脑打开控制面板不显示内容
- html中span怎么写,html的span标签怎么使用
- 笔记本软件兼容性测试,Windows 10 技术预览版 国产杀毒软件兼容性测试:大多可以使用...
- Three.js盖房子 点击开关门
- 深锐观察:科比已无法超越乔丹 湖人飞侠被谁打败
- 精心收集的几十个ASP编程网址
- 数据库保存时间为什么用long最好
- uint_32定义的说明
- 常用User-Agent大全
- Android性能优化之使用线程池处理异步任务
- 无孔不入的广告,亦是恶龙的化身
- BAT命令常用API
- 【ZYNQ】黑金教程_OV5640加LCD显示实验的Bug分享
热门文章
- 扇形面积公式如何推导?
- 修复outlook 收件箱
- 如何手写一个简单的RPC框架
- DirectDraw与DirectInput游戏编程体验
- html 初始化时请求网络,useRequest-蚂蚁中台标准请求 Hooks
- 智能运营:有效触达,驱动用户生命周期价值升级
- 大佬们,球球了帮忙看一下我这个蓝屏问题到底怎么回事吧
- [转]Markdown 语法说明 (简体中文版)
- solr全文检索入门
- 我的 IDEA 常用插件介绍