• linux 打包命令


    部分资料来源:

    1. 鳥哥的 Linux 私房菜
    2. Linux下文件的打包、解压缩指令

    gzip、bzip2

    zip可以压缩产生后缀为 .gz 的压缩文件,也可以用于解压gzip、compress等程序压缩产生的文件。

    基础格式: gzip [Options] file1 file2 file3  
      指令选项:(默认功能为压缩)  
      -c       //将输出写至标准输出,并保持原文件不变  
      -d       //进行解压操作  
      -v       //输出压缩/解压的文件名和压缩比等信息  
      -digit     //digit部分为数字(1-9),代表压缩速度,digit越小,则压缩速度越快,但压缩效果越差,digit越大,则压缩速度越慢,压缩效果越好。默认为6.  
    

      注意,使用 gzip 指令压缩/解压文件均会使得源文件消失,即源文件会被直接解压/压缩而不保留备份。若想要保留原文件可以使用 -c 参数结合数据流重定向操作(见下例)。

    gzip exp1.txt exp2.txt     //分别将exp1.txt和exp2.txt压缩,且不保留原文件。注意对于多个文件参数是将多个文件分别进行压缩,而不是压缩在一起。参考下文 tar 指令。
    
    gzip -dv exp1.gz       //将exp1.gz解压,并显示压缩比等信息。
    
    gzip -cd exp1.gz > exp.1    //将exp1.gz解压的结果放置在文件exp.1中,并且原压缩文件exp1.gz不会消失
    

      特别注意第三条实例, -d 指示解压缩,-c 参数是将结果输出至标准输出,通过 > 符号,将原本输出至标准输出的解压结果重定向至exp.1中,既解压了文件,原压缩文件也没有消失。

      注:
    1. 对应于 gzip,可以使用 gunzip 进行解压操作,效果类似gzip -d xx
    2. gzip -c 需要指定输出到的文件,不然解压不会执行成功。(参考第三条实例)

    bzip2是采用更好压缩算法的压缩程序,一般可以提供较之gzip更好的压缩效果。其具有与gzip相似的指令选项,压缩产生 .bz2 后缀的压缩文件。

    基础格式: bzip2 [Options] file1 file2 file3
    指令选项:(默认功能为压缩)
    -c       //将输出写至标准输出  
    -d       //进行解压操作  
    -v       //输出压缩/解压的文件名和压缩比等信息  
    -k       //在压缩/解压过程中保留原文件  
    -digit     //digit部分为数字(1-9),代表压缩速度,digit越小,则压缩速度越快,但压缩效果越差,digit越大,则压缩速度越慢,压缩效果越好。默认为6.
    
    bzip2 exp1.txt exp2.txt       //分别将exp1.txt和exp2.txt压缩,且不保留原文件。
    
    bzip2 -dv exp1.bz2       //将exp1.bz2解压,并显示压缩比等信息。
    
    bzip2 -kd exp1.bz2         //将exp1.bz2解压,并且原压缩文件exp1.bz2不会消失
    

      注:
    对应于 bzip2,可以使用 bunzip2 进行解压操作,效果类似bunzip2 -d xx

    gzip 或 bzip2 带有多个文件作为参数时,执行的操作是将各个文件独立压缩,而不是将其放在一起进行压缩。这样就无法产生类似于Windows环境下的文件夹打包压缩的效果。(gzip与bzip2也可以使用文件夹作为参数,使用 -f 选项,但也是将其中的每个文件独立压缩)。为了实现打包压缩的效果,可以使用命令 tar 进行文件的打包操作(archive),再进行压缩。####

    tar 指令可以将文件打包成文件档案(archive)存储在磁盘/磁带中,打包操作一般伴随压缩操作,也可以使用 tar 指令对打包压缩后的文件解压。

    基本格式:tar [Options] file_archive  //注意tar的第一参数必须为命令选项,即不能直接接待处理文件
      常用命令参数:
      //指定tar进行的操作,以下三个选项不能出现在同一条命令中
      -c        //创建一个新的打包文件(archive)
      -x        //对打包文件(archive)进行解压操作
      -t        //查看打包文件(archive)的内容,主要是构成打包文件(archive)的文件名
    
      //指定支持的压缩/解压方式,操作取决于前面的参数,若为创建(-c),则进行压缩,若为解压(-x),则进行解压,不加下列参数时,则为单纯的打包操作
      -z        //使用gzip进行压缩/解压,一般使用.tar.gz后缀
      -j        //使用bzip2进行压缩/解压,一般使用.tar.bz2后缀
    
      //指定tar指令使用的文件,若没有压缩操作,则以.tar作为后缀
      -f filename   //-f后面接操作使用的文件,用空格隔开,且中间不能有其他参数,推荐放在参数集最后或单独作为参数
             //文件作用取决于前面的参数,若为创建(-c),则-f后为创建的文件的名字(路径),若为(-x/t),则-f后为待解压/查看的打包压缩文件名
    
      //其他辅助选项
      -v        //详细显示正在处理的文件名
      -C Dir      //将解压文件放置在 -C 指定的目录下
      -p(小写)     //保留文件的权限和属性,在备份文件时较有用
      -P(大写)     //保留原文件的绝对路径,即不会拿掉文件路径开始的根目录,则在还原时会覆盖对应路径上的内容
      --exclude=file //排除不进行打包的文件
    
    压缩: 
    tar -cvjpf etc.tar.bz2 /etc  //-c为创建一个打包文件,相应的-f后面接创建的文件的名称,使用了.tar.bz2后缀,-j标志使用bzip2压缩,最后面为具体的操作对象/etc目录
     
    查看:
    j选项,-v会显示详细的权限信息
    
    解压
    tar -xvjf etc.tar.bz2     //-x为解压操作,则-f指定的是解压使用的文件,文件后缀显示使用bzip2进行压缩,所以加入-j选项,即使用bzip2解压
                         //若只解压指定打包文件中的一个文件,在上述指令的最后加上待解压文件名作为参数即可
    

    注:
    tar -cvf xx.tar.gz xxx 常用压缩指令
    tar -xvf xx.tar.gz 常用解压指令

  • 相关阅读:
    AtCoder Regular Contest 086 E
    bzoj3192: [JLOI2013]删除物品(树状数组)
    bzoj5118: Fib数列2(费马小定理+矩阵快速幂)
    bzoj2314: 士兵的放置(树形DP)
    bzoj1907: 树的路径覆盖(树形DP)
    最小割 总结&&做题记录
    最大流 总结&&做题记录
    网络流24题之太空飞行计划
    网络流24题之负载平衡问题
    网络流24题之飞行员配对方案
  • 原文地址:https://www.cnblogs.com/cuiyf/p/10209363.html
Copyright © 2020-2023  润新知