打包跟压缩的区别:

打包是指将多个文件或则目录放到一起,产生一个总的包,这样易于保存和传输,而且大小是没有变化的,压缩是指将一个或则多个大文件或则目录通过压缩算法使文件的容积变小以达到压缩的目的,可以节约储存空间,在压缩的时侯一般是先打包再压缩;

tar命令

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

tar命令参数后面加不加“-”执行命令的结果是没有区别的,区别只要是在于linux风格方面,加“-”属于SystemV风格,不加“-”属于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”:

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

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

linux压缩文件夹命令zip_linux压缩命令 zip_linux .zip压缩命令

倘若不用“-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文件的大小:

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

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

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

从上图可以看出绿色方框内有报错,这个报错的缘由是缺乏bzip2的包,须要安装一个bzip2软件

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

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

压缩速率:gz>bz2>xz

linux压缩文件夹命令zip_linux压缩命令 zip_linux .zip压缩命令

压缩率:xz>bz2>gz

三、解压

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

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

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

在解压gz压缩方法压缩文件的时侯并不须要加上-z,直接用参数-xf即可,另外两种压缩方法在解压的时侯一样,由于tar命令会手动选择linux压缩命令 zip,解压然后压缩文件还在linux web服务器,假若不指定解压下来的文件保存在那里,这么会直接解压在当前目录

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

补充:

a.在打包和压缩的过程中,我们有时侯会听到这样的句子:tar:从成员名中删掉开头的“/”,这个并不是报错,是由于没有加上-P选项,没有保留原先的绝对路径去打包或则压缩,提取打包的内容跟解压一样,下边举一个反例:

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

1.没有加-P选项:

2.加上-P选项:

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

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

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

b.在使用tar压缩或则打包的时侯,可以通过降低--exclude来达到排除指定的文件的目的

将/root/目录下的harry目录打包linux 下载,而且不打包harry目录下的ha.txt文件,如右图:

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

zip命令和unzip命令

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

查看有没有安装zip跟unzip命令的命令:

rpm-qzipunzip

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

zip命令

基本用法:

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

常用参数:

zip命令的常用参数

-m将文件压缩后,删掉原文件

-o将压缩文件内的所有文件的最新变动时间设为压缩的时间

-q安静模式,在压缩的时侯不显示指令执行的过程

-r递归压缩,将自定目录下的所有子文件以及文件一起处理

-x”文件列表“,压缩时排除文件列表中的文件

实例:

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

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

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

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

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

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

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

unzip命令

基本用法:

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

常用参数:

unzip命令的常用参数

-c将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,并且并没有解压压缩包

-l显示压缩文件内所包含的文件

-t检测压缩文件是否正确

-v执行时显示压缩文件的详尽信息

-q安静模式,执行时不显示任何信息

-d指定文件解压后储存的目录

-x指定不要处理压缩文件中的这些文件

实例:

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

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

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

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

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

linux压缩文件夹命令zip_linux .zip压缩命令_linux压缩命令 zip

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

#使用-v显示的信息比使用-l显示的信息愈发详尽

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

补充:使用r选项降低.tar归档文件的内容应当怎样怎样操作?

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

通过tar--help命令查看帮助

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

使用实例:

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

1.归档操作

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

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

3.验证

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

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

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

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

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复