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 15:29
下一篇 2015-09-26 22:32

相关推荐

  • 用户与组

    一、用户与组的概念 1、Linux多用户,多任务的特性    Linux是多用户多任务操作系统,多用户多任务就是可在系统上建多个用户,多个用户可同一时间同一个系统互不影执行的响各自不同的任务。例如linux服务器上有root、www、ftp,四个用户。同一时间内,root用户在查看系统日志,管理维护系统,www用户在修改自己的网页程序,f…

    Linux干货 2016-10-25
  • 方便实用的文件查找与压缩

    在平时的运维工作当中通常会编辑某些文件,但时间久了,突然一下子记不起文件的名字,遇到的事情又很紧急,需要立马去处理,而自己只知道那个文件部分的特征信息,我们需要在系统中去搜索自己想要的文件,那么有没有办法去实现呢,当然有,在我们的系统中,文件查找的工具有两个,locate和find。那么下面来介绍这两个工具的用法以及两个工具之间的差别。 在我们linux系统…

    Linux干货 2016-08-13
  • PHP5.4最新特性

    原文Oracle:LAMP 体系有了新的竞争,但此版本中的特性使 PHP 再次挑战极限。 稍微做了修改。: 概述总结:1. 内存和性能改进:大型 PHP 应用程序中可节省 20-50% 的内存。通过各种优化使性能提高 10-30%2. 支持特性Trait3. 精简数组语法,可以定义短数组4. 函数数组解除引用,支持Array dereferenci…

    Linux干货 2015-11-18
  • find和grep命令练习

                                    find和grep命令练习 1、显示当前系统上root,fedora,或user1用户的默认shell; ~]# cat /etc/pa…

    Linux干货 2016-10-23
  • linux文件管理类命令汇总及几个通配的查找事例

    linux文件管理类命令汇总 1.文本文件查看类命令:cat,tac,more,less,tail,head cat(tac): 正向(反向)显示 cat [OPTION]… [FILE]…                -E:显示行结束符$ -n:对显示出的每一行进行编…

    Linux干货 2016-09-24
  • N27_第一周作业

    一、描述计算机的组成及其功能 计算机由CPU、内存、输入设备和输出设备组成。 CPU:运算器、控制器、寄存器、缓存 *运算器:进行数字运算和逻辑运算。 *控制器: A、从内存中取出一条指令,并指出下一条指令在内存中的位置; B、对指令进行译码或测试,并产生相应的操作控制信号; C、控制并控制CPU、内存和输入/输出设备之间数据流动的方向。 *寄存器:暂存指令…

    Linux干货 2017-09-04

评论列表(2条)

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

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

  • Vicky
    Vicky 2015-09-27 16:06

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