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

相关推荐

  • 万能的AWK

    awk:文本三剑客之一 #报告生成器,主要用来实现格式化文本输出,它能够实现在处理文本文件时对文档中的某字段有条件显示并以非常美观的文本; 它是编程语言的解释器;它也是一种完整的编程语言,它支持条件判断、循环、变量、数组、函数等等各种各样的编程语言所能实现的功能。 用法:awk [options] ‘program’ FILE &#8…

    2017-04-22
  • Nginx 功能概述与基础应用!

           本篇博客主要有三个部分组成,目的在于让大家了解ningx的主要功用及作为web server的基础配置;通过本篇博客能够让您对nginx理解更加深入,以便于更好的使用它!                  …

    2017-05-14
  • 自定义命令提示符

     命令提示符的格式放在变量PS1中         命令提示符特殊字符定义             \u  当前用户      &…

    Linux干货 2017-05-02
  • centos 7.2 安装pyenv多版本管理工具和虚拟环境pyenv-virtualenv

    软件简介: pyenv + pyenv-virtualenv pyenv,是一款特别好用的Python版本管理器,程序员可以建立不同的目录,在不同的目录里分别运行不同版本的Python, 并且互不影响,安装的包也互不影响。github项目地址:https://github.com/yyuu/pyenv pyenv-virtualenv, 是pyenv的一个p…

    Linux干货 2016-07-04
  • 进程和优先级

         什么是进程?我们先来了解一下进程的概念:我们知道操作系统最核心的概念就是进程。进程简单来说就是在操作系统中运行的程序,它是操作系统资源管理的最小单位。但是进程是一个动态的实体,它是程序的一次执行过程。进程和程序的区别在于:进程是动态的,程序是静态的,进程是运行中的程序,而程序是一些保存在硬盘上的可执行代码。    当多个任务要执行时怎么办呢?先执行…

    2017-09-09
  • centos7 root密码忘记怎么修改

           对于事务繁忙或者容易忘东忘西的朋友说,想要记着一些事情总感觉比登天还要难,特别是像密码之类的。可能要记忆的密码太多,总是不经意间就把密码忘记或者把密码混淆。总之这种站的比例还是有点分量的,例如我刚刚接触Linux时 ,第一把centos7装到电脑上没有多久,就把root密码忘记了,费了好时间,也请教了很多…

    Linux干货 2017-04-03

评论列表(2条)

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

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

  • Vicky
    Vicky 2015-09-27 16:06

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