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/下的⽂件和anaconda-ks.cfg⽂件和time.sh⽂件打包为⼀个⽂件,名称为“jihe.tar”:
b.查看jihe.tar⽂件的内容:
c.提取jihe.tar⽂件的内容到/opt⽬录下:
如果不⽤“-C”指定⽬录则会提取内容到当前⽬录
⼆、压缩
linux主要有三种压缩⽅式:
2.bzip:压缩形成的⽂件⼩,但是可⽤性不如gzip
<:是最新的压缩⽅式,可以⾃动提供最佳的压缩率
建议的压缩的时候标明后缀:
参数 作⽤ 命名⽅式
-z ⽤于gzip压缩⽅式 ⽂件名.
-j ⽤于bzip2压缩⽅式 ⽂件名.tar.bz2
-J ⽤于xz压缩⽅式 ⽂件名.
实例:⽤不同的压缩⽅式压缩/root/⽬录下的Golden.apk⽂件
先查看Golden.apk⽂件的⼤⼩:
可以看到Golden.apk⽂件的⼤⼩为187M
a.⽤gzip压缩⽅式将Golden.apk⽂件压缩为Golden.⽂件:
b.⽤bzip2的压缩⽅式将Golden.apk⽂件压缩为Golden.apk.tar.bz2⽂件:
从上图可以看出红⾊⽅框内有报错,这个报错的原因是缺少bzip2的包,需要安装⼀个bzip2软件包
安装完成之后再重新压缩:
在压缩的过程中,我们可以发现:
压缩速度:gz > bz2 > xz
压缩率:xz > bz2 > gz
三、解压
先删除/root/⽬录下的Golden.apk⽂件:
tar命令式⼀个很聪明的命令,我们在解压的时候不需要指明⾃⼰压缩的⽅式它会⾃⼰选择跟压缩⽅式对应的⽅式去解压,这话说得有点拗⼝,例:
a.将Golden.解压到当前⽬录:
在解压gz压缩⽅式压缩⽂件的时候并不需要加上-z,直接⽤参数-xf即可,另外两种压缩⽅式在解压的时候⼀样,因为tar命令会⾃动选择,解压之后压缩⽂件还在,如果不指定解压出来的⽂件保存在哪⾥,那么会直接解压在当前⽬录
b.指定解压出来的⽂件保存的⽬录,将Golden.apk.tar.bz2⽂件解压在/opt/⽬录下:
补充:
a.在打包和压缩的过程中,我们有时候会看到这样的语句:tar: 从成员名中删除开头的“/”,这个并不是报错,是因为没有加上-P选项,没有保留原来的绝对路径去打包或者压缩,提取打包的内容跟解压⼀样,下⾯举⼀个例⼦:
将/root/⽬录以gzip的⽅式压缩为压缩⽂件:
1.没有加-P选项:
2.加上-P选项:
解压的时候同理,如果在压缩⽂件的时候使⽤了-P选项,那么在解压的时候也要加上-P选项,不然也会出现”tar: 从成员名中删除开头的“/”“,如下图:
1.不加-P选项解压使⽤了-P选项压缩/root/后的⽂件:
2.加上-P选项解压使⽤了-P选项压缩/root/后的⽂件:
b.在使⽤tar压缩或者打包的时候,可以通过增加--exclude来达到排除指定的⽂件的⽬的
将/root/⽬录下的harry⽬录打包,但是不打包harry⽬录下的ha.txt⽂件,如下图:
压缩⽂件也是同理,想要排除指定的⽬录压缩或者打包也是同理
linux查看当前文件夹内容zip命令和unzip命令
#在使⽤zip跟unzip命令之前先查看系统有没有安装这两个命令的包,没有的话要⾃⼰安装
查看有没有安装zip跟unzip命令的命令:
rpm -q zip unzip
如果有安装了命令则会显⽰出命令的版本号
zip命令
基本⽤法:
zip [参数] [压缩包名] [压缩的⽬录或者⽂件的路径]
常⽤参数:
zip命令的常⽤参数
-m 将⽂件压缩后,删除原⽂件
-o 将压缩⽂件内的所有⽂件的最新变动时间设为压缩的时间
-q 安静模式,在压缩的时候不显⽰指令执⾏的过程
-r 递归压缩,将⾃定⽬录下的所有⼦⽂件以及⽂件⼀起处理
-
x ”⽂件列表“,压缩时排除⽂件列表中的⽂件
实例:
a.压缩⽬录,将/root/⽬录下的harry⽬录压缩为名为harry.zip压缩包:
1.正常压缩,不加-q选项,显⽰压缩的过程:
2.加上-q选项,安静模式输出,不显⽰压缩的过程:
b.压缩多个⽂件,将/root/⽬录下的⽂件和anaconda-ks.cfg⽂件和Golden.apk⽂件压缩为名为jihe.zip的压缩包:因为压缩的全是⽂件,所以可以不⽤加上-r选项
c.压缩⽂件跟⽬录,将/root/下的⽂件和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表⽰全部⽂件都是正确的
d.不解压压缩⽂件dajih
e.zip,查看压缩包⾥⾯的内容(查看显⽰的⽂件列表还包含压缩⽐率):
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论