zoukankan      html  css  js  c++  java
  • Linux下各类压缩文件命令小结

    转自 Linux下各类压缩文件命令小结

    .tar 
    解包:tar xvf FileName.tar    解包后原始文件仍存在 
    打包:tar cvf FileName.tar DirName1 Filename1 … 
    列出内容:tar tvf FileName.tar 
    (注:tar是打包,不是压缩!) 
    ——————————————— 
    .gz 
    解压1:gunzip FileName.gz    解包后原始文件消失 
    解压2:gzip -d FileName.gz    解包后原始文件消失 
    压缩:gzip FileName(只能对单一文件压缩) 
    列出内容:gzip -l 5314-GZ-1.gz

    .tar.gz 和 .tgz 
    解压:tar zxvf FileName.tar.gz    解包后原始文件仍存在 
    压缩:tar zcvf FileName.tar.gz DirName 
    列出内容:tar tvf FileName.tar.gz      gzip -l 5314-GZ-1.gz 
    ——————————————— 
    .bz2 
    解压1:bzip2 -d FileName.bz2    解包后原始文件消失 
    解压2:bunzip2 FileName.bz2    解包后原始文件消失 
    压缩: bzip2 -z FileName 
    列出内容:bzcat FileName.bz2 | wc -c

    .tar.bz2 
    解压:tar jxvf FileName.tar.bz2    解包后原始文件仍存在 
    压缩:tar jcvf FileName.tar.bz2 DirName 
    列出内容:bzcat FileName.tar.bz2 | wc -c 
    ——————————————— 
    .bz 
    解压1:bzip2 -d FileName.bz    解包后原始文件消失 
    解压2:bunzip2 FileName.bz    解包后原始文件消失 
    压缩:未知 
    列出内容:bzcat FileName.bz | wc -c

    .tar.bz 
    解压:tar jxvf FileName.tar.bz   解包后原始文件仍存在 
    压缩:未知 
    列出内容:bzcat FileName.tar.bz | wc –c       tar tvf test.tar.bz 
    ——————————————— 
    .Z 
    解压:uncompress FileName.Z    解包后原始文件消失 
    压缩:compress FileName 
    .tar.Z

    解压:tar Zxvf FileName.tar.Z 
    压缩:tar Zcvf FileName.tar.Z DirName

    ——————————————— 
    .xz 
    解压:uncompress FileName.Z 
    压缩:compress FileName 
    .tar.Z

    解压:tar Zxvf FileName.tar.Z 
    压缩:tar Zcvf FileName.tar.Z DirName

    ——————————————— 
    .zip 
    解压:unzip FileName.zip    解包后原始文件仍存在 
    压缩:zip FileName.zip DirName 
    列出内容:unzip –l FileName.zip


    ——————————————— 
    .rar 
    解压:rar x FileName.rar    解包后原始文件仍存在 
    压缩:rar a FileName.rar DirName 
    列出内容:unrar –t FileName.rar 
    ———————————————

    总结:gzip、bzip2、uncompress等命令均会改变原文件,而tar、unzip、unrar等命令则不会改变原始文件,压缩文件类似于.tar[.gz/bz/bz2/Z]均可用tar命令操作,而filename.gz/bz/bz2/Z等格式则只能用对应的gzip、bzip2、uncompress等命令操作。

    补充:

    tar 
    -c: 建立压缩档案 
    -x:解压 
    -t:查看内容 
    -r:向压缩归档文件末尾追加文件 
    -u:更新原压缩包中的文件 
    这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。


    -z:有gzip属性的 
    -j:有bz2属性的 
    -Z:有compress属性的 
    -v:显示所有过程 
    -O:将文件解开到标准输出


    下面的参数-f是必须的 
    -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 
    # tar -cf all.tar *.jpg这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 
    # tar -rf all.tar *.gif 
    这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 
    # tar -uf all.tar logo.gif 
    这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 
    # tar -tf all.tar 
    这条命令是列出all.tar包中所有文件,-t是列出文件的意思 
    # tar -xf all.tar 
    这条命令是解出all.tar包中所有文件,-x是解开的意思 
    压缩 
    tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg 
    tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz 
    tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2 
    tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z 
    rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux 
    zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux 
    解压 
    tar –xvf file.tar //解压 tar包 
    tar -xzvf file.tar.gz //解压tar.gz 
    tar -xjvf file.tar.bz2 //解压 tar.bz2 
    tar –xZvf file.tar.Z //解压tar.Z 
    unrar e file.rar //解压rar 
    unzip file.zip //解压zip 
    总结 
    1、*.tar 用 tar –xvf 解压 
    2、*.gz 用 gzip -d或者gunzip 解压 
    3、*.tar.gz和*.tgz 用 tar –xzf 解压 
    4、*.bz2 用 bzip2 -d或者用bunzip2 解压 
    5、*.tar.bz2用tar –xjf 解压 
    6、*.Z 用 uncompress 解压 
    7、*.tar.Z 用tar –xZf 解压 
    8、*.rar 用 unrar e解压 
    9、*.zip 用 unzip 解压

    附上计算压缩文件实际大小以及解压命令

    # 21001 zip    21002 7z    21003 gz/z    21004 bz(recognize bz to bz2)
    # 21005 bz2 21006 xz 21008-21010 rar 21012 tar
    compress_cmd = {
    21001: ("unzip -l {0} | awk 'END {{print $1}}'", "cd {0} && unzip -P- -o {1} > /dev/null 2>&1"),
    21002: ("7z l {0} | awk 'END {{print $1}}'", "cd {0} && 7z -p- x {1} -y > /dev/null 2>&1"),
    21003: ("gzip -l {0} | awk 'END {{print $2}}'", "cd {0} && cp {1} ./ && basename {1} | xargs gzip -dqf > /dev/null 2>&1"),
    21004: ("bzcat {0} | wc -c", "cd {0} && cp {1} ./ && basename {1} | xargs bzip2 -dqf > /dev/null 2>&1"),
    21005: ("bzcat {0} | wc -c", "cd {0} && cp {1} ./ && basename {1} | xargs bzip2 -dqf > /dev/null 2>&1"),
    # 21006: ("xz --robot --list {0} | awk '/^totals/{{print $5}}'", "cd {0} && xz -dqf {1} > /dev/null 2>&1"),
    21006: ("xz --robot --list {0} | awk '/^totals/{{print $5}}'", "cd {0} && cp {1} ./ && basename {1} | xargs xz -dqf > /dev/null 2>&1"),
    21008: ("unrar -t {0} | awk 'END {{print $2}}'", "cd {0} && rar -p- -o+ x {1} > /dev/null 2>&1"),
    21009: ("unrar -t {0} | awk 'END {{print $2}}'", "cd {0} && rar -p- -o+ x {1} > /dev/null 2>&1"),
    21010: ("unrar -t {0} | awk 'END {{print $2}}'", "cd {0} && rar -p- -o+ x {1} > /dev/null 2>&1"),
    # 21011: ("zcat {0} | wc -c", "cd {0} && uncompress -qf {1} > /dev/null 2>&1"),
    21012: ("tar -tvf {0} | awk '{{sum += $3}} END {{print sum}}'", "cd {0} && tar --overwrite -xf {1} > /dev/null 2>&1")
    }
    
    
    def get_uncompress_cmd(self, file_type):
    return compress_cmd[file_type][1]

    def get_cal_size_cmd(self, file_type):
    return compress_cmd[file_type][0]
    
    
    调用:
    self.get_cal_size_cmd(file_type).format(file_path)
    self.get_uncompress_cmd(file_type).format(new_dir, file_path)

    References:

    http://www.jb51.net/LINUXjishu/43356.html

    http://blog.csdn.net/sunboy_2050/article/details/5918185

  • 相关阅读:
    Docker容器启动时初始化Mysql数据库
    使用Buildpacks高效构建Docker镜像
    Mybatis 强大的结果集映射器resultMap
    Java 集合排序策略接口 Comparator
    Spring MVC 函数式编程进阶
    换一种方式编写 Spring MVC 接口
    【asp.net core 系列】6 实战之 一个项目的完整结构
    【asp.net core 系列】5 布局页和静态资源
    【asp.net core 系列】4. 更高更强的路由
    【Java Spring Cloud 实战之路】- 使用Nacos和网关中心的创建
  • 原文地址:https://www.cnblogs.com/abc8023/p/6739341.html
Copyright © 2011-2022 走看看