zoukankan      html  css  js  c++  java
  • Linux中文件压缩与解压

    压缩与解压

    compress 文件名

     
    
      1 -v //详细信息
      2
      3 -d //等于 uncompress 默认只识别 .Z  如果使用别的后缀,会导致不识别,解压缩失败。也可以使用 -d -c 压缩包 > 解压缩的形式,解压被改了后缀的压缩包.这种方式不会覆盖源文件.
      4
      5 //优点是这种方式不会覆盖源文件.缺点是会丢失文件的原有权限,新的权限基于当前umask码而定。
      6
      7 -c //输出的标准输出  再结合> 生成文件 举例:
      8
      9 compress -c pssswd > passwd.Z  //压缩完成。
     10
     11 uncompress   //解压缩

    gzip 格式:gzip 文件名 压缩

      1 -d 或 gunzip //解压 只识别.gz
      2 
      3 -c 文件名 > 压缩包  //压缩后保持原文件不变,但权限会根据umask变化
      4 
      5 gzip -c messages >messages.gz
      6 
      7 -cd 压缩包 > 文件名  或 zcat 压缩包 > 文件名 //解压后保持压缩包不变,但权限会根据umask变化
      8 
      9 -v //详细信息
     10 
     11 -# //表示指定压缩比,默认是6 ,数字越小,表示压缩比越小,速度越快。反之,数字越大,压缩比越大,速度却越慢。
     12 
     13 gzip -9 -c passwd > passwd.gz  //是压缩比最大的.
     14 
     15 zcat //:不显式解压缩的前提下查看文本文件内容,举例
     16 
     17 zcat messages.gz > messages

    bzip2

      1 -k //保持原文件或原压缩包不变
      2 
      3 -d 或 bunzip2 //解压
      4 
      5 -c命令.//用重定向 >也能解压,但会丢失权限.新的权限同样取决于当前的umask码.
      6 
      7 -cd 压缩包 > 文件名  //可以实现预览压缩包的功能,解压后保持压缩包不变,但权限会根据umask变化
      8 
      9 -v //详细信息
     10 
     11 -# //表示指定压缩比,默认是9,数字越小,表示压缩比越小,速度越快。反之,数字越大,压缩比越大,速度却越慢。
     12 
     13 bzcat://不显式解压缩的前提下查看文本文件内容
    

    xz

      1 选项:
      2 
      3 -k //保持原文件或原压缩包不变
      4 
      5 -d 或 unxz //解压
      6 
      7 -c 文件名 > 压缩包  //压缩后保持原文件不变,但权限会根据umask变化
      8 
      9 -cd 压缩包 > 文件名  或 xzcat 压缩包 > 文件名 //解压后保持压缩包不变,但权限会根据umask变化
     10 
     11 -v //详细信息
     12 
     13 -# //表示指定压缩比,默认是6,数字越小,表示压缩比越小,速度越快。反之,数字越大,压缩比越大,速度却越慢。
    

    xz在 compress gzip  bzip2 xz这几种压缩工具中,压缩比例是最高的.而它们的共同点是:它们只负责压缩及解压缩,没有打包(归档)的功能.原文件和压缩后的文件也是一一对应的关系,

    zip 打包压缩工具,默认后缀名为.zip
    
    -r                                             //压缩包名 源文件…… 两者都可以是目录,举例
    
    # zip –r /testdir/sysconfig /etc/sysconfig/
    
    unzip                                          //压缩包名  解压缩默认在当前目录进行,如果压缩包内有目录文件,则先创建再解压,不会覆盖根目录.
    
    # cat /var/log/messages | zip messages  -      //用cat打开messages,并通过管道传递给zip进行压缩,压缩后的位置是当前目录,名字为messages. - 在这里的意思是
    
    /var/log/messages                              //因为zip需要两个参数,即 压缩包名及源文件,一些命令可以用 - 来表示第二个参数.
    
    # unzip -p message > message                   //解压缩的固定格式.
    

    tar (Tape ARchive,磁带归档的缩写) 格式 tar 选项 压缩后的名字 源文件 选项中的-可以不要

      1 选项:
      2 
      3 -c //创建包
      4 
      5 -v //详细过程
      6 
      7 -f //指定生成后的文件名  源文件……
    

    示例

    tar -cvf mage.tar *  //将当前目录下的所有文件打包压缩为 mage.tar
    
    tar -tvf mage.tar  //预览归档文件(只要涉及到解压缩文件,必须加上f选项)
    
    tar -r /etc/fstab -f mage.tar  //往归档中增加文件,在执行后会提示,已经将最前方的根号(/)去掉,避免解压缩的时候,覆盖了源文件. 如上例,不去掉的话,那么解压缩这个包,会直接覆盖/etc目录.另外,被其他的压缩工具再次压缩包后,不可以再往里面添加包了.但可以解一个或全部压缩.
    
    tar --delete etc/fstab -f mage.tar //从归档中减少文件
    
    //格式 先指定要删除的文件名或目录.再指定从哪个文件里删.
    
    tar -xv passwd -f mage.tar //从归档中解出指定的文件
    
    //格式  先指定要解压的文件名或目录.再指定从哪个文件里解压.
    
    tar -xvf mage.tar //从归档中解出所有文件
    
    tar xvf mage.tar -C /app2 //解压到指定目录,默认为当前目录
    
    -j //使用bzip2 压缩或解压缩(可省略)
    
    -J //使用xz 压缩或解压缩(可省略)
    
    -z //使用gzip 压缩或解压缩(可省略)
    
    tar jcvf mage.tar.bz2 *
    
    //先使用bzip2工具压缩,再使用tar工具压缩,将当前目录下的所有文件都压缩成名字为mage.tar.bz2的压缩包.
    
    tar xvf mage.tar.bz2
    
    //将mage.tar.bz2文件先用bzip2解压缩,再使用tar解压到当前目录下.
    

    分割及合并文件

    T选项指定输入文件,-X选项指定包含要排除的文件列表

    # tar zcvf mybackup.tgz -T /root/includefilelist -X
    
    (-x后面是不要的文件列表)/root/excludefilelist

    将/root/includefilelist压缩为mybackup.tgz,但是不要/root/includefilelist当中的/root/excludefilelist.

    //分割大的 tar 文件为多份小文件:
    
    # split –b Size(指定大小) –d tar-file-name(压缩包名字) prefix-name(拆分后的名字)//拆分后的小压缩包,只能看出是压缩类型文件(file+文件名查看),但是不能单独解压,只能合并再一起才能正常解压。
    
    split -b 1M –d mybackup.tgz mybackup-parts
    
    //将mybackup.tgz压缩包,按照每份1M的大小分割为mybackup-parts的小压缩包。

    合并:

    cat mybackup-parts* > mybackup.tar.gz
    
    //将所有以mybackup-parts开头的压缩文件,合并为名字是mybackup.tar.gz的压缩包。

    cpio 通过重定向的方式将文件进行打包备份,还原恢复的工具.可以解压以“.cpio”或者“.tar”结尾的文件

    cpio [选项] > 文件名或者设备名

    cpio [选项] < 文件名或者设备名

    选项:

    -o //将文件拷贝打包成文件或者将文件输出到设备上
    
    -i //解包,将打包文件解压或将设备上的备份还原到系统
    
    -t //预览,查看文件内容或者输出到设备上的文件内容
    
    -v //显示打包过程中的文件名称。
    
    -d //解包生成目录,在cpio还原时,自动的建立目录
    
    -c //一种较新的存储方式
    

    示例:

    # find |cpio -ov > find.cpio   //将查找到的数据管道给cpio,然后归档打包为find.cpio
    
    # cpio -tv < find.cpio 或 # cat find.cpio |cpio -tv  //预览find.cpio当中的文件.
    
    # cpio -idv < find.cpio  或 cat find.cpio |cpio -idv //解开find.cpio当中的文件.
    

    归档和解压的时候,原文件的权限也会被保存.cpio解文件,自己不会带跟目录/.可以手动指定目录.

    rpm2cpio命令:将rpm格式的文件转为cpio格式的文件。rpm是linux中常用的文件格式,方便了用户的安装,但没有cpio格式灵活,最典型的例子就是安装一个在rpm中.iso文件时,如果直接使用rpm安装,那么需要处理复杂的依赖关系,将rpm转为cpio,则可以方便地提取.iso文件,做过软连接。

    常用格式:rpm2cpio kernel-2.6.32-696.el6.x86_64.rpm |cpio -id

  • 相关阅读:
    HUST 1372 marshmallow
    HUST 1371 Emergency relief
    CodeForces 629D Babaei and Birthday Cake
    CodeForces 629C Famil Door and Brackets
    ZOJ 3872 Beauty of Array
    ZOJ 3870 Team Formation
    HDU 5631 Rikka with Graph
    HDU 5630 Rikka with Chess
    CodeForces 626D Jerry's Protest
    【POJ 1964】 City Game
  • 原文地址:https://www.cnblogs.com/OrochWang/p/9517097.html
Copyright © 2011-2022 走看看