11-文件压缩与打包

文件压缩与打包

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

在这里插入图片描述

1.打包 -tar

多个文件和目录的打包。

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

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

tar常用选项

  • -c (create)创建文件包

  • -x 提取文件

  • -t 查看压缩文件

  • -z(使用gzip方式处理,与“c”结合就表示压缩;与“x”结合就表示解压缩)

  • -j(使用bzip2方式处理,与“c”结合就表示压缩;与“x”结合就表示解压缩)

  • -v (verbose)详细报告tar处理信息

  • -f (file)文件名

  • -r (append) -r选项的作用:把要存档的文件追加到档案文件的未尾

  • -C <指定目录> 解压到指定目录

1.1tar打包,gzip压缩

后缀xxx.gz

1)压缩

tar -czvf  文件名  目录名

tar -czvf  和 tar  czvf   是一样的。所以tar命令选项都可以取消 “-

2)查看压缩文件

tar  tvf 压缩文件名

3)解压

tar xzvf 压缩文件名

tar xzvf 压缩文件名 -C 指定的目录

1.2 tar打包,zip2压缩

后缀xxx.bz2

1)压缩

tar -cjvf  文件名  目录名

tar -cjvf  和 tar  cjvf   是一样的。所以tar命令选项都可以取消 “-

2)查看压缩文件

tar  tvf 压缩文件名

3)解压

tar xjvf 压缩文件名
或者
tar xjvf 压缩文件名 -C 指定的目录
如果不用“-C”指定目录则会提取内容到当前目录

1.3 总结

1)tar命令式一个很聪明的命令,我们在解压的时候不需要指明自己压缩的方式它会自己选择跟压缩方式对应的方式去解压。

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

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

如 将备份 /home, /etc ,但不要 /home/dmtsai

[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

3)使用r选项,在已经归档文件.tar的内容中再增加应该如何怎么操作?

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

如 ,已经归档了一个 test.tar,然后再将文件newtext.c追加到档案里面。

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          2022/6/4     23:38              0 newtext.c
-a----          2022/6/4     23:37           1536 test.tar  //生成.tar文件,目录归档完毕!
 
 //-r 追加  
 tar -rvf test.tar .\newtext.c 
 //查看验证   
 tar -tvf .\test.tar
-rw-rw-rw-  0 0      0           0 604 23:35 ./test.c
-rw-rw-rw-  0 0      0           0 604 23:38 ./newtext.c

2.压缩

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

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

注意

  • 单个文件的压缩使用gzip或者zip2

  • 压缩有2个参数,压缩时间 和压缩比

  • 一般情况下,大文件用bzip2压缩;小文件用 gzip 压缩

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

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

2.1 gzip/zcat

单个文件压缩解压 ,后缀 xxx.gz

gzip的常用选项

  • -l(list) 列出压缩文件的内容

  • -k(keep) 在压缩或者解压时,保留输入文件

  • -d(decompress) 将压缩文件进行解压缩

  • -t : 可以用来检验一个压缩文件的一致性,看文件有无错误

  • -v : 可显示出原文件/压缩文件的压缩比等信息

  • -c : 将压缩的数据输出到屏幕上,可通过数据流重定向来处理

1)查看压缩文件

gzip -l  压缩文件名
gzip -l services.gz
或者用
 zcat  缩文件名
 zcat services.gz

2)解压

gzip -kd  压缩文件名

该压缩文件是以.gz结尾的单个文件

3)压缩

gzip -k  源文件

注意:

  • 如果gzip不加任何选项,此时为压缩,压缩完该文件会自动生成.gz的压缩文件,并删除原有的文件。所以推荐使用 gzip -k 压缩源文件

  • 相同的文件内容,如果文件名不同,压缩后的大小也不同

  • 只能压缩单个文件,不能压缩目录

2.2 bzip2/bzcat

单个文件压缩解压 ,后缀 xxx.bz2

bzip2的常用选项

  • -k(keep) 在压缩或者解压时,保留输入文件

  • -d(decompress) 将压缩文件进行解压缩

1)压缩

bzip2 -k 原文件名

得到后缀 xxxx.bz2

2)解压

bzip -kd  压缩文件名

3)查看 bzcat

bzcat man.config.bz2

注意:

  • 如果bzip2不加任何选项,此时为压缩,压缩完该文件会自动生成.bz2的压缩文件,并删除原有的文件。

所以推荐使用bzip2 -k 压缩源文件

  • 只能压缩单个文件,不能压缩目录

2.3 xz/xzcat

[~] xz [-dtlkc] 文件名
[~] xcat 文件名.xz
选项与参数:
-d : 解压缩
-t : 测试压缩文件的完整性,看是否有错误
-l : 列出压缩文件的相关信息
-k : 保留原文件不删除
-c : 将压缩过程产生的数据输出到屏幕上

1)压缩

[ ~] xz -k services #【-k】 : 保留原文件不删除

2)解压缩

[~] xz -kd services.xz #【-d】: 解压缩

2.4 zip /unzip

zip的常用选项

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

unzip的常用选项

-c将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包
-l显示压缩文件内所包含的文件
-t检查压缩文件是否正确
-v执行时显示压缩文件的详细信息
-q安静模式,执行时不显示任何信息
-d指定文件解压后存储的目录
-x指定不要处理压缩文件中的那些文件
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值