Linux文件压缩、解压、归档总结

一、简介

  压缩对我们来说通常意味着减小文件体积,节省硬盘空间。在Windows平台上处理大文件或目录中的文件很多时我们都需要对这些文件进行压缩处理,压缩格式多种多样,如:zip、rar、7z等格式,压缩方式也比较多样话,支持按最大压缩比例或者最快时间进行压缩等多种方式,而生成的压缩包就可以让我们更方便的进行拷贝及归档整理。解压缩顾名思义就是回归本源,把压缩包里的文件还原成原本的样子。同样在Linxu平台上有“一切皆文件”的说明,因此对文件的压缩、解压、归档更是我们日常工作中必须要掌握的技能。

二、用法详解

 常见的压缩解压命令有如下几种形式:

 compress/uncompress .Z (Unix下比较常见)

 gzip/gunzip .gz (压缩率稍高,不支持目录压缩)

 bzip2/bunzip2 .bz2 (压缩率很高,不支持目录压缩)

 xz/unxz .xz (目前压缩率最高,不支持目录压缩)

 zip/unzip .zip (通用性最高,支持多个文件压缩归档成一个文件)

1.gzip压缩后的文件后缀名为.gz,压缩完之后原文件会被自动删除,gunzip解压缩完成之后原压缩包也会被自动删除。语法格式为:gzip [OPTIONS] /PATH/TO/SOMEFILE …

    -#: 指明压缩比;1-9,默认为6,数字越大,压缩比越大(消耗CPU资源比越多,时间越慢);

    -d: decompress, 解压缩, 相当于gunzip;

    -c: 将压缩后的数据输出至标准输出;

    gzip -c /PATH/TO/SOMEFILE > /PATH/TO/SOMEFILE.gz

    -r: 递归至目录中对每个文件进行压缩;

    zcat /path/to/somefile.gz:无须显式解压缩查看压缩文件的内容;

例:把500MB的a.txt文件进行gzip压缩,命令为:gzip a.txt ,详情见下图:

blob.png

例:把2.1MB的a.txt.gz文件进行解压还原成原文件,命令为:gunzip a.txt 或 gzip -d a.txt,详情见下图:

blob.png

例:把500MB的a.txt文件按最大比例进行gzip压缩,命令为:gzip -9 a.txt ,详情见下图:

blob.png

例:a.txt压缩后保留原文件并生成新文件b.txt.gz,命令为:gzip -c a.txt > b.txt.gz ,详情见下图:

blob.png

例:实现把test1目录中所有的文件单独压缩成gz文件,命令为:gzip -r test1 ,详情见下图:

blob.png例:使用zcat命令可以不用解压缩(理论上有可能解压到内存或其他临时目录中,待验证)直接查看functions.gz中的文件内容,命令为:zcat test1/functions.gz ,详情见下图:

blob.png

2.bzip2压缩后的文件后缀名为.bz2,压缩完之后原文件会被自动删除,bunzip2解压缩完成之后原压缩包也会被自动删除。语法格式为:bzip2 [OPTIONS] /PATH/TO/SOMEFILE…

    -#: 指明压缩比;1-9,默认为6,数字越大,压缩比越大;

    -d: decompress, 解压缩, 相当于bunzip2;

    -k: 压缩后保留原文件;

    bzcat /path/to/somefile.bz2:无须显式解压缩查看压缩文件的内容;

例:把458MB的a.txt文件进行bzip2压缩,命令为:bzip2 -k a.txt ,详情见下图:

blob.png

例:把1.8KB的a.txt.bz2文件进行解压还原成原文件,命令为:bzip2 -d a.txt.bz2 或 bunzip2 a.txt.bz2,详情见下图:

blob.png

例:把458MB的a.txt文件按最大比例进行bzip2压缩,命令为:bzip2 -9 a.txt ,详情见下图:

blob.png

例:使用bzcat命令可以不用解压缩(理论上有可能解压到内存或其他临时目录中,待验证)直接查看a.txt.bz2中的文件内容,命令为:bzcat a.txt.bz2 ,详情见下图:

blob.png

3.xz压缩后的文件后缀名为.xz,压缩完之后原文件会被自动删除,unxz解压缩完成之后原压缩包也会被自动删除。语法格式为:xz [OPTIONS] /PATH/TO/SOMEFILE…

       -#: 指明压缩比;1-9,默认为6,数字越大,压缩比越大;

       -d: decompress, 解压缩, 相当于bunzip2;

       -k: 压缩后保留原文件;

       xzcat /path/to/somefile.xz:无须显式解压缩查看压缩文件的内容;

例:把458MB的a.txt文件进行xz压缩,命令为:xz -k a.txt ,详情见下图:

blob.png

例:把458MB的a.txt文件进行xz -1和xz-9压缩,命令为:xz -k1 a.txt xz-k9 a.txt ,详情见下图:

blob.png

例:使用xzcat命令可以不用解压缩(理论上有可能解压到内存或其他临时目录中,待验证)直接查看a.txt.xz中的文件内容,命令为:xzcat a.txt.xz ,详情见下图:

blob.png

4.zip压缩后的文件后缀名为.zip,压缩时必须手动指定压缩后生成的压缩包文件名,可以把多个文件压缩归档成一个文件,压缩完之后原文件会被自动删除,unzip解压缩完成之后原压缩包也会被自动删除。zip语法格式为:zip ZIP_FILE.zip /PATH/TO/SOMEFILE…

unzip语法格式为:unzip ZIP_FILE.zip

例:把458MB的a.txt和b.txt两个文件合并压缩成一个ab.zip压缩包文件,命令为:zip ab.zip a.txt b.txt ,详情见下图:      

blob.png

例:把3.2MB的ab.zip压缩包文件解压还原成a.txt和b.txt文件,命令为:unzip ab.zip,详情见下图:

blob.png

5.归档可以将多个文件打包(合并)为单个文件以便于管理。默认不会执行压缩。语法格式为:

归档:tar [OPTIONS] -c -f /PATH/TO/TARFILE.tar /PATH/TO/FILE…

归档:不会删除原文件;

展开归档:tar -x -f /PATH/TO/TARFILE.tar [-C /PATH/TO/DIR]

查看被归档起来的文件列表:tar -t -f /PATH/TO/TARFILE.tar

注意:(1) 多个选项可以合并,但-f由于要带参数,因此,应该放在最右侧;如:-tf, -xf, -cf

(2) 选项的引导符-可省略;如:tar xf , tar zf中的-xf这个"-"可以省略。

例:把a.txt和b.txt两个文件创建生成归档文件ab.tar(归档文件并不对原文件进行压缩),

命令为:tar -cf ab.tar a.txt b.txt ,详情见下图:

blob.png

例:把ab.tar这个归档文件展开到bak目录下,

命令为:tar -xf ab.tar -C ../bak ,详情见下图:

blob.png

例:不展开归档文件,直接查看归档文件包中的文件(只显示文件列表,非文件内容),命令为:tar -tf ab.tar,详情见下图:

blob.png

blob.png

6.tar命令支持归档并压缩,常用格式如下:

    -z: gzip

    后缀名: .tar.gz

    归档并压缩:tar -zcf

    展开归档:tar -zxf 

     -j: bzip2

     后缀名: .tar.bz2

     归档并压缩:tar -jcf

     展开归档: tar -jxf

     -J: xz

     后缀后: .tar.xz

     归档并压缩: tar -Jcf

     展开归档: tar -Jxf

注意:展开归档可以直接使用tar -xf,而无须为其指定对应的压缩工具选项。

例:把原文件直接归档并压缩成.tar.gz格式的压缩包,命令为:tar -zcf ab.tar.gz a.txt b.txt,详情见下图:

blob.png

例:对归档压缩后的文件进行展开并解压还原成原文件,指定解压目录为当前目录,命令为:tar -zxf ab.tar.gz -C ./,详情见下图:

blob.png

例:把原文件直接归档并压缩成.tar.bz2格式的压缩包,命令为:tar -jcf ab.tar.bz2 a.txt b.txt,详情见下图:

blob.png例:对归档压缩后的文件进行展开并解压还原成原文件,指定解压目录为当前目录,命令为:tar -jxf ab.tar.bz2 -C ./,详情见下图:

blob.png例:把原文件直接归档并压缩成.tar.xz格式的压缩包,命令为:tar -Jcf ab.tar.xz a.txt b.txt,详情见下图:

blob.png

例:对归档压缩后的文件进行展开并解压还原成原文件,指定解压目录为当前目录,命令为:tar -Jxf ab.tar.xz -C ./ 或 tar -Jxf ab.tar.xz  (-C参数可省略,如省略则解压到当前目录下),详情见下图:

blob.png

原创文章,作者:镜花水月,如若转载,请注明出处:http://www.178linux.com/8330

(1)
镜花水月镜花水月
上一篇 2015-09-26
下一篇 2015-09-26

相关推荐

  • 走入系统命令

    一、inode节点号         在linux中,每一个文件都有唯一的inode号,inode号也是系统识别的唯一编码,而文件名仅仅是为了使用者区分辨认, inode (index node )表中包含文件系统所有文件列表 一个节点(索引节点)是在一个表项,包含有关…

    2017-05-25
  • 管道、重定向和用户管理练习

    前面一章学习了硬链接和软链接,回顾上一章节内容:    硬链接:在inode表中记录一个条目,所有的元数据和原始文件元数据相同。        ·相当于两个名字。        ·删除原始文件,另一个条目也能够…

    Linux干货 2016-08-04
  • VIM编辑器

    VIM是什么? Vim是从VI发展出来的一个文本编辑器,拥有许多丰富的功能,便于编程开发,在程序员中被广泛使用,是类Unix系统用户最喜欢的功能强大的跨平台文本文件编辑工具。 为什么要用VIM? vi编辑器是所有类UNIX系统下标准的编辑器,他是我们使用Linux系统不能缺少的工具。对于所有类UNIX系统的任何版本,vi编辑器是完全相同的。而vim是从VI发…

    2017-06-03
  • Linux boot分区意外格式化或清除之后…

    boot分区在没有备份的情况下意外被清空,包括启动引导信息也没了。这时若Linux还在运行,那你是幸运的, 修复的方法: 1. cat  /etc/*release      #赶快先确定当前系统的具体版本。有ISO镜像赶快挂载上来.   &nbsp…

    Linux干货 2016-03-22
  • 提问的智慧

    译文 译文: 捷克语 丹麦语 爱沙尼 亚语 法语 德语 希伯来语 匈牙利语 意大利语 日语 波 兰语 俄语 西班牙语 瑞典语 土 耳其语. 如果你想复制、镜像、翻译或引用本文,请参阅我的 复制须知. 弃权申明 …

    Linux干货 2015-03-20
  • 数据库

    数据库系统理论概述(一) –本文主要讲述: – 1.数据库和数据库管理系统 – 2.使用传统的文件系统对大量数据管理存在的问题 – 3.常见的数据库系统模型 – 4.数据库视图 – 5.数…

    Linux干货 2016-10-30

评论列表(2条)

  • 云中鹤
    云中鹤 2015-09-26 22:45

    兄台,问一下你的联系方式,博客写的这么好,像你学习啊。

  • Vicky
    Vicky 2015-09-27 16:06

    写的很详细,很认真,赞!