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

相关推荐

  • 如何修复Ubuntu 12.04上时间不正确的问题

    大家好: 今天跟大家分享下如何修复ubuntu 12.04上时间不正常的问题。 1–首先打date查看系统的时间是否正常 martell@cnux10:~/sistes/sha-mmb-o2o2o$ date  Thu Dec  1 09:15:47 UTC 2016 martell@cnux10:~/sistes/sha-m…

    Linux干货 2016-12-04
  • MAN 手册各章节功能及快捷键键位介绍

      man命令在linux下属于一种帮助命令,man手册提供了比较齐全的帮助格式,它大致分为8个章节 一.各个章节如下 1 – commands 1-普通的命令 (用户命令,  可由任何人启动的) 2 – system calls 2-系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函…

    Linux干货 2016-10-17
  • 实验:httpd

    虚拟主机 httpd-2.4示例步骤: 1. 进行规划虚拟主机 192.168.209.8:80,192.168.209.10:80 www.10linux.com,www.iounix.com /var/www/html/10linux,/var/www/html/iounix 2. ]# mkdir /var/www/html/{10linux,ioun…

    Linux干货 2017-06-04
  • RAID与逻辑卷

        RAID与逻辑卷作为磁盘管理的方式,各有各的优势。RAID是多个磁盘合成一个阵列,以便提供更好的性能;逻辑卷相对于分区来说,可以在线扩展空间,也可以缩减空间。可以利用软件的方式来实现RAID与逻辑卷。 一、利用软件方式实现RAID     利用sdb sdc sdd sd…

    2017-08-12
  • 帮助和文件管理信息

    history命令: -c 清空命令历史 -d offset 删除历史中指定的第offset个命令 n 显示最近的n条历史 -a 追加本次会话新执行的命令历史列表至历史文件 -n 读历史文件中未读过的行到历史列表 -r 读历史文件附加到历史列表 -w 保存历史列表到指定的历史文件 -p 展开历史参数成多行,但不存在历史列表中 -s 展开历史参数马一行。附加在…

    Linux干货 2017-04-11
  • linux发展史-

    前言: 人类文明的进步伴随着战争,战争留下的产物也是非常伟大的。 最初用于战争的通电钢铁,如今以进入人们生活。 而它的附带产物如今也是变得妙不可言。 本文简要说明操作系统的发展过程,以及该大树下一些分支。         简 述   Linux是诞生与UNIX下的一款操系统,有着安全稳定的文件系统,…

    Linux干货 2016-10-19

评论列表(2条)

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

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

  • Vicky
    Vicky 2015-09-27 16:06

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