首页 > 系统相关 >初识Linux(五)------ 文件与文件系统的压缩,打包与备份

初识Linux(五)------ 文件与文件系统的压缩,打包与备份

时间:2022-10-28 11:35:03浏览次数:45  
标签:文件 压缩 gz 压缩文件 gzip 初识 services Linux ------

1. 压缩文件

  在Linux的环境中,压缩文件的扩展名大多是:“*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2, *.xz”,为什么会有这样的扩展名呢?不是说 Linux 的扩展名没有什么作用吗?

  这是因为 Linux 支持的压缩指令非常多,且不同的指令所用的压缩技术并不相同,当然彼此之间可能就无法互通压缩/解压缩文件。 所以,当你下载到某个压缩文件时,自然就需要知道该文件是由哪种压缩指令所制作出来的,好用来对照着解压缩。

  • *.Z compress 程序压缩的文件;
  • *.zip zip 程序压缩的文件;
  • *.gz gzip 程序压缩的文件;
  • *.bz2 bzip2 程序压缩的文件;
  • *.xz xz 程序压缩的文件;
  • *.tar tar 程序打包的数据,并没有压缩过;
  • *.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩
  • *.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩
  • *.tar.xz tar 程序打包的文件,其中并且经过 xz 的压缩

  Linux上常见的压缩指令就是 gzip, bzip2 以及最新的 xz ,至于 compress 已经不流行了。为了支持 windows 常见的 zip,其实 Linux 也早就有 zip 指令了! gzip 是由 GNU 计划所开发出来的压缩指令,该指令已经取代了 compress 。 后来 GNU 又开发出 bzip2 及 xz 这几个压缩比更好的压缩指令!不过,这些指令通常仅能针对一个文件来压缩与解压缩,如此一来, 每次压缩与解压缩都要一大堆文件,岂不烦人?此时,那个所谓的“打包软件, tar”就显的很重要。

  这个 tar 可以将很多文件“打包”成为一个文件!甚至是目录也可以。不过,单纯的 tar 功能仅是“打包”而已,亦即是将很多文件集结成为一个文件, 事实上,他并没有提供压缩的功能,后来,GNU 计划中,将整个 tar 与压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩与打包功能。

1.1 gzip, zcat/zmore/zless/zgrep

  gzip 可以说是应用度最广的压缩指令了!目前 gzip 可以解开 compress, zip 与 gzip 等软件所压缩的文件。 至于 gzip 所创建的压缩文件为 *.gz 的文件名。

[dmtsai@study ~]$ gzip [-cdtv#] 文件名
[dmtsai@study ~]$ zcat 文件名.gz
选项与参数:
-c  :将压缩的数据输出到屏幕上,可通过数据流重导向来处理;
-d  :解压缩的参数;
-t  :可以用来检验一个压缩文件的一致性~看看文件有无错误;
-v  :可以显示出原文件/压缩文件的压缩比等信息;
-#  :# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6
范例一:将文件services以 gzip 压缩
[dmtsai@study tmp]$ gzip -v services services: 79.7% -- replaced with services.gz [dmtsai@study tmp]$ ll /etc/services /tmp/services* -rw-r--r--. 1 root root 670293 Jun 7 2013 /etc/services -rw-r--r--. 1 dmtsai dmtsai 136088 Jun 30 18:40 /tmp/services.gz

 

  当使用 gzip 进行压缩时,在默认的状态下原本的文件会被压缩成为 .gz 的文件名,原始文件就不再存在了。 这点与一般习惯使用 windows 压缩所熟悉的情况不同。

  此外,使用 gzip 压缩的文件在 Windows 系统中,可以被 WinRAR/7zip 这个软件解压缩。

范例二:由于 services 是文本文件,请将范例一的压缩文件的内容读出来!
[dmtsai@study tmp]$ zcat services.gz
# 由于 services 这个原本的文件是是文本文件,因此我们可以尝试使用 zcat/zmore/zless 去读取!
# 此时屏幕上会显示 servcies.gz 解压缩之后的原始文件内容!

范例三:将范例一的文件解压缩
[dmtsai@study tmp]$ gzip -d services.gz
# 鸟哥不要使用 gunzip 这个指令,不好背!使用 gzip -d 来进行解压缩!
# 与 gzip 相反, gzip -d 会将原本的 .gz 删除,回复到原本的 services 文件。

范例四:将范例三解开的 services 用最佳的压缩比压缩,并保留原本的文件
[dmtsai@study tmp]$ gzip -9 -c services > services.gz

范例五:由范例四再次创建的 services.gz 中,找出 http 这个关键字在哪几行?
[dmtsai@study tmp]$ zgrep -n 'http' services.gz
14:#       http://www.iana.org/assignments/port-numbers
89:http            80/tcp          www www-http    # WorldWideWeb HTTP
90:http            80/udp          www www-http    # HyperText Transfer Protocol
.....(下面省略).....

  其实 gzip 的压缩已经最优化过了,所以虽然 gzip 提供 1~9 的压缩等级,不过使用默认的 6 就非常好用了。范例四中 -c 可以将原本要转成压缩文件的数据内容,将它变成文字类型从屏幕输出, 然后我们可以通过大于 (>) 这个符号,将原本应该由屏幕输出的数据,转成输出到文件而不是屏幕,所以就能够创建出压缩文件了。只是文件名也要自己写, 当然最好还是遵循 gzip 的压缩文件名要求较佳。更多的 > 这个符号的应用,会在 bash 章节再次提及!

  cat/more/less 可以使用不同的方式来读取纯文本文件,那个 zcat/zmore/zless 则可以对应于 cat/more/less 的方式来读取纯文本文件被压缩后的压缩文件。由于 gzip 这个压缩指令主要想要用来取代 compress 的,所以不但 compress 的压缩文件可以使用 gzip 来解开,同时 zcat 这个指令可以同时读取 compress 与 gzip 的压缩文件。

  另外,如果你还想要从文字压缩文件当中找数据的话,可以通过 egrep 来搜寻关键字喔!而不需要将压缩文件解压缩后以 grep 进行,这对查询备份中的文本文件数据相当有用。

 

标签:文件,压缩,gz,压缩文件,gzip,初识,services,Linux,------
From: https://www.cnblogs.com/astonc/p/16835254.html

相关文章

  • 二分搜索——有序数组
    二分搜索思路:根据数组的中间下标的值判断要查找的值的位置,从而缩小搜索范围,以达到提高搜索效率的目的publicclassMain{publicstaticvoidmain(String[]args)......
  • SQL语法
    !SQL对大小写不敏感SQLDML和DDLDML:数据操作语言SELECT获取UPDATE更新DELETE删除INSERTINTO插入DDL:数据定义语言createdatabase创建数据库alter......
  • 浏览器背后的运行机制
    浏览器渲染过程什么是渲染过程?简单来说,渲染引擎根据HTML文件描述构建相应的数学模型,调用浏览器各个零部件,从而将网页资源代码转换为图像结果,这个过程就是渲染过程(如下图......
  • C++ 实现链表(单双循环链表)
    目录单链表单循环链表双循环链表单链表template<typenameT>classLinkedList{ typedefLinkedListself;typedefTvalue_type;classNode{......
  • es6 reduce()的一些用法
    //计算数组中最大值constarr=[1,2,3,4,5,6,7,8,9]letmax=arr.reduce((max,age)=>{returnmax>age?max:age},0)<!--console.log(max)-->//数......
  • <四>1:全面掌握Const的用法
    const怎么理解?const修饰的变量不能够在作为左值!!初始化完成后,值不能被修改!!C和C++中const的区别?在C程序中test.cconstinta;只定义,不做初始化(C中允许),如......
  • 关于超融合项目立项之初的若干经验分享(Hyper-Converged)
    引子采访:您好小明先生,请问迫使您企业引入超融合架构最大的驱动力是什么?小明:穷。采访:哈,您幽默,能谈谈战略方面的意义吗?小明:我幽默个P。但凡领导批1个亿,我整排机架都换成小型......
  • CNN基础论文 精读+复现----LeNet5 (二)
    文章目录​​复现准备​​​​数据部分​​​​搭建网络结构​​​​C1层:​​​​S2层:​​​​C3层:​​​​S4层:​​​​C5层:​​​​F6层:​​​​Output层:​​​​损失......
  • 卷积神经网络(CNN)(local receptive fields & 局部接收域 & 局部感受野、shared weights
    文章目录​​localreceptivefield​​​​Sharedweights​​​​spatialortemporalsubsampling​​localreceptivefield局部感受野,也叫感受视野域。这个localrece......
  • Pytorch----入门级CIFAR10的神经网络层,sequential,tansorboard可视化卷积中的各种参
    文章目录​​普通方法​​​​完整代码:​​​​sequential方法​​​​使用tansorboard可视化卷积层中的各种数据​​普通方法使用神经网络:(CIFAR10的神经网络)可以看到......