zoukankan      html  css  js  c++  java
  • 24.gzip、unzip命令详解

    gzip命令


    减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。


    注意:压缩完成后会删除原文件
    语法:

    gzip [选项] 压缩(解压缩)的文件名



    各选项的含义:

    -c 将输出写到标准输出上,并保留原有文件。
    
    -d 将压缩文件解压。
    
    -l 对每个压缩文件,显示下列字段:压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字
    
    -r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
    
    -t 测试,检查压缩文件是否完整。
    
    -v 对每一个压缩和解压的文件,显示文件名和压缩比。
    
    -num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。



    假设一个目录/home下有文件mm.txt、sort.txt、xx.com。

    例1:把/home目录下的每个文件压缩成.gz文件。

    $ cd /home
    
    $ gzip *
    
    $ ls
    
    m.txt.gz sort.txt.gz xx.com.gz



    例2:把例1中每个压缩的文件解压,并列出详细的信息。

    $ gzip -dv *
    
    mm.txt.gz 43.1%-----replaced with mm.txt
    
    sort.txt.gz 43.1%-----replaced with sort.txt
    
    xx.com.gz 43.1%-----replaced with xx.com
    
    $ ls
    
    mm.txt sort.txt xx.com



    例3:详细显示例1中每个压缩的文件的信息,并不解压。

    $ gzip -l *
    
    comcodessed uncompr. ratio uncomcodessed_name
    
    277 445 43.1% mm.txt
    
    278 445 43.1% sort.txt
    
    277 445 43.1% xx.com
    
    $ ls
    
    mm.txt.gz sort.txt.gz xx.com.gz



    例4:压缩一个tar备份文件,如usr.tar,此时压缩文件的扩展名为.tar.gz

    $ gzip usr.tar
    
    $ ls
    
    usr.tar.gz
    
    :gzip -d *.gz

    gunzip命令

    Gunzip是一个用于解压缩Gzip文件的命令行工具,Gzip是最流行的压缩算法之一,它可以减小文件的大小并保留原始文件模式、所有权和时间戳。按照惯例,使用Gzip压缩的文件将被赋予.gz或.z扩展名。在本文中,我们将解释如何使用gunzip命令。

    注意:解压完成后会删除原文件

    用gunzip解压缩文件

    gunzip命令的一般语法如下:

    gunzip [OPTION]... [FILE]...

    在大多数Linux发行版上,例如Ubuntu、CentOS和Debian,gunzip是gzip -d命令的bash脚本包装器。

    所有gzip命令行选项都适用于gunzip。

    要使用gunzip解压缩.gz文件,请将压缩文件名作为参数传递:

    $ gunzip filename.gz

    该命令将压缩文件恢复为其原始名称、所有者、模式和时间戳。

    默认情况下,一旦解压缩,gunzip将删除压缩文件,使用-k选项保留文件:

    $ gunzip -k filename.gz

    要在终端上写入输出,请使用-c选项,这允许你保留压缩文件并可选地将其解压缩到另一个位置:

    $ gunzip -c filename.gz > /directory/path/filename

    gunzip命令还接受多个文件作为参数:

    $ gunzip file1.gz file2.gz file3.gz

    要递归解压缩给定目录中的所有文件,请使用-r选项:

    $ gunzip -r directory

    列出压缩文件内容

    与-l选项一起使用时,gunzip显示有关给定压缩文件的信息:

    $ gunzip -l filename.gz

    输出将包括未压缩的文件名,压缩和未压缩的大小以及压缩率:

    要获得更详细的输出,请使用-v选项:

    $ gunzip -lv filename

    会输出如下信息:

    zip命令

    Linux zip 命令用于压缩文件。

    zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。

    参数:

    -A:调整可执行的自动解压缩文件;
    -b<工作目录>:指定暂时存放文件的目录;
    -c:替每个被压缩的文件加上注释;
    -d:从压缩文件内删除指定的文件;
    -D:压缩文件内不建立目录名称;
    -f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
    -F:尝试修复已损坏的压缩文件;
    -g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
    -h:在线帮助;
    -i<范本样式>:只压缩符合条件的文件;
    -j:只保存文件名称及其内容,而不存放任何目录名称;
    -J:删除压缩文件前面不必要的数据;
    -k:使用MS-DOS兼容格式的文件名称;
    -l:压缩文件时,把LF字符置换成LF+CR字符;
    -ll:压缩文件时,把LF+cp字符置换成LF字符;
    -L:显示版权信息;
    -m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
    -n<字尾字符串>:不压缩具有特定字尾字符串的文件;
    -o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
    -q:不显示指令执行过程;
    -r:递归处理,将指定目录下的所有文件和子目录一并处理;
    -S:包含系统和隐藏文件;
    -t<日期时间>:把压缩文件的日期设成指定的日期;
    -T:检查备份文件内的每个文件是否正确无误;
    -u:更换较新的文件到压缩文件内;
    -v:显示指令执行过程或显示版本信息;
    -V:保存VMS操作系统的文件属性;
    -w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
    -x<范本样式>:压缩时排除符合条件的文件;
    -X:不保存额外的文件属性;
    -y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
    -z:替压缩文件加上注释;
    -$:保存第一个被压缩文件所在磁盘的卷册名称;
    -<压缩效率>:压缩效率是一个介于1~9的数值。

    用法

    1.将/home/data 这个目录下的所有文件打包压缩为当前目录下的data.zip

    zip -q -r data.zip /home/data

    2.如果现在在/home 这个目录下,则如下

    zip -q -r data.zip data

    3.如果在/home/data 这个目录下,则如下

    zip -q -r data.zip *

    以上三种效果一样。

    unzip命令

    压缩/解压缩操作后,源文件仍然保留
    用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢?可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。

    语法:

    unzip [选项] 压缩文件名.zip


    各选项的含义分别为:

    -x 文件列表 解压缩文件,但不包括指定的file文件。
    
    -v 查看压缩文件目录,但不解压。
    
    -t 测试文件有无损坏,但不解压。
    
    -d 目录 把压缩文件解到指定目录下。
    
    -z 只显示压缩文件的注解。
    
    -n 不覆盖已经存在的文件。
    
    -o 覆盖已存在的文件且不要求用户确认。
    
    -j 不重建文档的目录结构,把所有文件解压到同一目录下



    例1:将压缩文件text.zip在当前目录下解压缩。

    $ unzip text.zip



    例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。

    $ unzip -n text.zip -d /tmp



    例3:查看压缩文件目录,但不解压。

    $ unzip -v text.zip


    zgrep命令


    这个命令的功能是在压缩文件中寻找匹配的正则表达式,用法和grep命令一样,只不过操作的对象是压缩文件。如果用户想看看在某个压缩文件中有没有某一句话,便可用zgrep命令。

    参考:https://www.cnblogs.com/chyong168/archive/2012/03/23/2413628.html

    https://www.cnblogs.com/black-humor/p/8962499.html

    https://ywnz.com/linuxml/5902.html

  • 相关阅读:
    94. Binary Tree Inorder Traversal
    101. Symmetric Tree
    38. Count and Say
    28. Implement strStr()
    实训团队心得(1)
    探索性测试入门
    LC.278. First Bad Version
    Search in Unknown Sized Sorted Array
    LC.88. Merge Sorted Array
    LC.283.Move Zeroes
  • 原文地址:https://www.cnblogs.com/zhongguiyao/p/13946204.html
Copyright © 2011-2022 走看看