Linux之文件系统的压缩与打包

一,在Linux的环境中,压缩文件的扩展名大多是.tar,  .tar.gz,  .tgz,  .gz,  .Z,  .bz2 。这几种扩展名分别是通过不同的压缩技术得到的:

.Z: compress程序压缩的文件
.gz: gzip程序压缩的文件
.bz2: bzip2程序压缩的文件
.tar: tar:程序打包的数据,并没有压缩过
.tar.gz:tar程序打包的文件,其中经过gzip的压缩
.tar.bz2:tar程序打包的文件,其中经过bzip2的压缩

Linux上常见的压缩命令就是gzip与bzip2。

  1. Compress(已经不再流行了)
    我们的CentOS默认没有安装这个软件到系统中,所以想要了解这个软件的使用,请先安装ncompress:yum install -y ncompress
    这里不再介绍该命令,想学习的可以通过互联网查询相关用法
  2. gzip,zcat
    gzip可以说是应用最广的压缩命令了,目前gzip可以解开compress、zip与gzip等软件压缩的文件。
    命令格式:
    gzip [-cdtv#] 文件名
    zcat 文件名.gz
    参数:
    -c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理
    -d:解压缩的参数
    -t:可以用来检验一个压缩文件的一致性,看看文件有无错误
    -v:可以显示原文件/压缩文件的压缩比等信息
    -#:压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好,默认-6#将/etc/man.config复制到/tmp中,并且以gzip压缩
    cd /tmp
    cp /etc/man.config .
    gzip -v man.config
    与compress类似,当你使用gzip进行压缩时,在默认的状态下,原本的文件会被压缩成.gz的文件名,源文件就不再存在了。此外,使用gzip压缩的文件在Windows系统中,竟然可以被WinRAR这个软件解压缩。由于man.config这个原本文件是文本文件,因此我们可以尝试使用zcat去读取:
    zcat man.config.gz
  3. bzip2,bzcat
    若说gzip是为了替代compress并提供更好的压缩比而成立的,那么bzip2则是为了取代gzip并提供更佳的压缩比而来的。命令格式:
    bzip2 [-cdkzv#] 文件名
    bzcat 文件名.bz2
    参数:
    -c:将压缩过程中产生的数据输出到屏幕上
    -d:解压缩的参数
    -k:保留原文件,而不会删除原始文件
    -z:压缩的参数(gzip命令无此参数,gzip使用-v压缩)
    -v:可以显示原文件/压缩文件的压缩比等信息
    -#:与gzip同样的,都是计算压缩比的参数
    示例:
    #将刚才的/tmp/man.config以bzip2压缩
    bzip2 -z man.config
    #将上面压缩后的文件内容读出来
    bzcat man.config.gz2
    #将其解压缩
    bzip2 -d man.config.bz2
    #将man.config用最佳的压缩比压缩,并保留原本的文件
    bzip2 -9 -c man.config > man.config.bz2

二,打包命令:tar

  1. tar的参数非常多,下面只介绍几个常用的参数,更多参数可以自行man tar 查询
    命令格式:
    tar [-j|-z][cv][-f 新建的文件名] filename…    #打包与压缩
    tar [-j|-z][tv][-f 新建的文件名]                       #查看文件名
    tar [-j|-z] [xv][-f 新建的文件名][-C 目录]     #解压缩
    参数:
    -c:新建打包文件,可搭配-v来查看过程中被打包的文件名filename
    -t:查看打包文件的内容含有哪些文件名,重点在查看文件名
    -x:解打包或解压缩的功能,可以搭配-C在特定目录解开
    -j:通过bzip2的支持进行压缩/解压缩,此时文件名最好为*.tar.bz2
    -z:通过gzip的支持进行压缩/解压缩,此时文件名最好为*.tar.gz
    -v:在压缩/解压缩的过程中,将正在处理的文件名显示出来
    -f filename:-f后面要接被处理的文件名
    -C 目录:这个参数在解压缩时,若要在特定目录解压缩,可以使用这个参数我自己常用的压缩打包、解压缩命令:
    (1) tar  -zcvf  压缩包名.tar.gz   源文件    #其实就是先打包为.tar格式,再压缩为.gz格式。
    (2)tar  -zxvf  压缩包名.tar.gz

参考:Linux私房菜第三版

发表评论

电子邮件地址不会被公开。 必填项已用*标注