Centos7.5-文件的归档和压缩

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7.5-文件的归档和压缩相关的知识,希望对你有一定的参考价值。

本节所讲内容:

  • 9.1 tar命令进行文件的归档和压缩
  • 9.2 zip管理压缩文件
  • 9.3 了解gzip-bzip2- xz管理压缩文件-file-sort查看文件

9.1 tar命令进行文件的归档和压缩

9.1.1 归档和压缩文件

归档和压缩文件的好处:节约硬盘的资源 ,加快文件传输速率

  • tar命令 作用:打包、压缩文件
    技术分享图片

  • 作用:打包、压缩文件;tar
    文件是把几个文件和(或)目录集合在一个文件里,该存档文件可以通过使用gzip、bzip2或xz等压缩工具进行行压缩后传输
  • 查看man tar
  • 用法:tar [OPTION...] [FILE]...

参数:

  • -c create创建文件
  • -x -extract [?ekstr?kt] 提取 解压还原文件
  • -v --verbose显示执行详细过程
  • -f --file指定备份文件
  • -t --list 列出压缩包中包括哪些文件,不解包,查看包中的内容
  • -C (大写)--directory 指定解压位置

例:给/boot/grub目录 打包

[[email protected] ~]#  tar -cvf grub.tar /boot/grub/  # tar的参数前可以不使用‘-’

或:

[[email protected] ~]#  tar cvf grub.tar /boot/grub/

tar: 从成员名中删除开头的“/”

/boot/grub/
/boot/grub/splash.xpm.gz
[[email protected] ~]# ls gurb.tar
[[email protected] ~]# tar xvf grub.tar   #解压缩
boot/grub/
boot/grub/splash.xpm.gz
[[email protected] ~]# ls  boot  #得到boot目录

注意:在使用绝对路径名归档文件时,将默认从文件名中删除该路径中前面的 / 符号。这样解压时,会直接解压到当前目录。 如果不移除/压缩时,当解包时,直接按绝对路径来释放,会覆盖原系统中此路径的文件。
例1:指定解压位置 -C

[[email protected] ~]# tar xvf grub.tar.bz2 -C /opt/
tar: 从成员名中删除开头的“/”
/boot/grub/
/boot/grub/splash.xpm.gz
[[email protected] ~]# ls /opt/
boot

例2:把两个目录或目录+文件打包成一个软件包:

[[email protected] ~]# mkdir back
[[email protected] ~]# cp /etc/passwd back/
[[email protected] ~]# tar -cvf back.tar /boot/grub  back/ /etc/passwd
tar: 从成员名中删除开头的“/”
/boot/grub/
/boot/grub/splash.xpm.gz
back/
back/passwd
/etc/passwd

例3:不解包,查看tar中的内容:

[[email protected] ~]# tar -tvf grub.tar         # List all files in archive.tar verbosely.

例4:对比加v的效果

[[email protected] ~]# tar -xf grub.tar 
[[email protected] ~]# tar -xvf grub.tar 
boot/grub/
boot/grub/splash.xpm.gz

Linux架构师高薪入口:
1.学神IT教育官方网站: http://xuegod.ke.qq.com
2.10年行业资深老鸟MK:QQ2659153446
3.加入Linux技术交流QQ群:722287089,即可获得以下福利:
①定期分享免费学习资料与视频(工具+笔记+拓展实战)
②10年行业资深老鸟在线答疑:技能+实战+项目分享+高薪就业
③有机会免费领取Linux云计算集群架构师4册书籍

9.1.2 tar 归档+压缩:

语法:tar czvf newfile.tar.gz SOURCE
常用参数:

  • -z, --gzip 以gzip方式压缩 扩展名: tar.gz
  • -j : 以bz2方式压缩的 扩展名:tar.bz2
  • -J : 以xz 方式压缩 扩展名:tar.xz

例1:创建.tar.gz 包

[[email protected] ~]# tar cvf etc.tar /etc 
[[email protected] test]# tar zcvf etc.tar.gz /etc  #归档,注意备份的名字后缀
[[email protected] test]# tar zxvf etc.tar.gz   #解压缩

例2:创建.tar.bz2包

例3:创建.tar.xz包

[[email protected] ~]#  tar -Jcvf etc.tar.xz /etc
[[email protected] ~]#  tar -xvf etc.tar.xz    #tar.xz 这类包,解压缩

或:

[[email protected] ~]#  tar -Jxvf etc.tar.xz  #

对比三种压缩方式后压缩比例:

[[email protected] ~]# ll -h etc.tar*
-rw-r--r-- 1 0 root   36M 5月  10 12:10 etc.tar
-rw-r--r-- 1 0 root   9.6M 5月  10 12:14 etc.tar.bz2    #这个常用
-rw-r--r-- 1 0 root   12M 5月  10 12:11 etc.tar.gz    #这个常用
-rw-r--r-- 1 0 root   7.7M 5月  10 12:16 etc.tar.xz   #这个压缩比例最高,压缩的时间是最长

9.2 zip管理压缩文件

zip软件包解压缩命令:
zip是压缩程序,unzip是解压程序。
例1:压缩文件:

[[email protected] ~]# zip a.zip /etc/passwd 

例2:将所有.jpg的文件压缩成一个zip包

[[email protected] ~]# zip all.zip *.jpg  

例3:压缩一个目录

[[email protected] ~]# zip -r grub.zip /boot/grub   #一般不用

解压缩:

[[email protected] ~]# unzip grub.zip
[[email protected] ~]# unzip grub.zip -d /opt/  #  -d  解压到指定的目标/opt

9.3 了解gzip-bzip2- xz管理压缩文件-file-sort查看文件

我们创建压缩的TAR存档,TAR命令它支持三种不同的压缩方式。

  • gzip压缩速度最快;
  • bzip2压缩生成的文件比gzip小,但使用不如gzip广;
  • xz压缩工具相对较新,但是会提供最佳的压缩率
    Linux架构师高薪入口:
    1.学神IT教育官方网站: http://xuegod.ke.qq.com
    2.10年行业资深老鸟MK:QQ2659153446
    3.加入Linux技术交流QQ群:722287089,即可获得以下福利:
    ①定期分享免费学习资料与视频(工具+笔记+拓展实战)
    ②10年行业资深老鸟在线答疑:技能+实战+项目分享+高薪就业
    ③有机会免费领取Linux云计算集群架构师4册书籍

9.3.1 压缩工具

压缩工具:gzip bzip2 zip xz
常见的压缩格式: .gz .bz2 .xz .zip
语法格式:
压缩

gzip 文件  ====》  gzip a.txt   =====》 a.txt.gz
bzip2 文件 ===》 bzip2 b.txt  =====》 b.txt.bz2
xz 文件 ===》xz c.txt ===》c.txt.xz
[[email protected] ~]# mkdir xuegod
[[email protected] ~]# touch  xuegod/a.txt
[[email protected] ~]# gzip xuegod/a.txt 
[[email protected] ~]# ls xuegod/a*
xuegod/a.txt.gz

注:只能对文件进行压缩,且压缩后源文件会消失,一般不用。
(bzip2,xz这两个工具可以通过添加参数-k来保留下源文件)

[[email protected] ~]# cp /etc/passwd 1.txt
[[email protected] ~]# bzip2 -k 1.txt
[[email protected] ~]# ls  1.txt.bz2

[[email protected] ~]# xz -k 1.txt
[[email protected] ~]# ls 1.txt.xz

解压:

  • gzip -d 文件
  • bzip2 -d 文件 -k 保留源文件
  • xz -d 文件 或 unxz 文件 -k 保留源文件

例:

[[email protected] mnt]# gzip -d 1.txt.bz2
[[email protected] ~]# bzip2 -d 1.txt.bz2
[[email protected] mnt]# xz -d 1.txt.bz2

9.3.2 file查看文件

file命令

  • 作用: file - determine file type #确定文件类型
  • 用法: file /etc/passwd

注:linux系统不根据后缀名识别文件类型用file命令查看文件的类型。

[[email protected] ~]# file /etc/passwd
/etc/passwd: ASCII text

9.3.3 按一定规则排序查看文件

查看文件:

[[email protected] ~]# ls -ltr    按时间排序  t 表示时间,  -r 从小到大,不加r参数由大到小

[[email protected] ~]# ls -lSr  按大小排序  -r 从小到大  
[[email protected] ~]# ls -lSrh  按大小排序  -r 从小到大  ,加-h 参数,看大小,更清楚
[[email protected] ~]# ls -lS   从大到小

查看目录:

[[email protected] ~]# du -sh /etc   看某个目录大小

查看分区大小:

[[email protected] ~]# df -h  可以快速查看磁盘大小的存储空间

9.3.4 排序:处理大量数据时会用到的命令sort

例1:默认按字母规则进行排序

[[email protected] ~]# cat  /etc/passwd | sort | more

例2: 按数据排序

[[email protected] ~]# vim file2   #每行随意写一些数字

例2: 按数据排序,默认从小到大

2
23
231
[[email protected] mnt]# sort -n file2  #-n默认从小到大  
[[email protected] ~]# sort  -r file2   #-r 反序排序(升序变成降序进行排序) 从大小到

例3:支持按月份排序

[[email protected] ~]# vim  file3  #写入以下内容
January 
March
April
February
[[email protected] ~]# sort -M file3
April
February
January 
March

例4:组合使用

  • -t 指定一个用来区分键位置字符
  • -k 后面跟数字,指定按第几列进行排序
  • -r 反序排序(升序变成降序进行排序)

    [[email protected] ~]# sort -t ":" -k3 -r /etc/passwd | more #按: 做分隔符,以第3列,也就是用户UID,来从大到小排序
    [[email protected] ~]# du -h /etc | sort -r | more #把etc目录下所有文件,按从大到小排序
    Linux架构师高薪入口:
    1.学神IT教育官方网站: http://xuegod.ke.qq.com
    2.10年行业资深老鸟MK:QQ2659153446
    3.加入Linux技术交流QQ群:722287089,即可获得以下福利:
    ①定期分享免费学习资料与视频(工具+笔记+拓展实战)
    ②10年行业资深老鸟在线答疑:技能+实战+项目分享+高薪就业
    ③有机会免费领取Linux云计算集群架构师4册书籍
    微信公众号:
    技术分享图片
    MK老师微信号:
    技术分享图片
    总结:

  • 9.1 tar命令进行文件的归档和压缩
  • 9.2 zip管理压缩文件
  • 9.3 了解gzip-bzip2- xz管理压缩文件-file-sort查看文件

以上是关于Centos7.5-文件的归档和压缩的主要内容,如果未能解决你的问题,请参考以下文章

归档和压缩

Linux大神笔记分享:文件的归档和压缩

《Linux学习并不难》归档和压缩:tar包的使用和管理

Linux命令应用大词典-第16章 归档和压缩

Linux 的备份和压缩命令

如何轻松归档文件?2种方法轻松创建归档文件!