*、最简版-Linux 压缩命令与解压脚本


Linux 的解压命令太繁琐了,即便是运维老司机也会感到头痛,这里我分享一个 Shell 脚本,可以一键解压以下格式的文件:

.zip, .rar, .bz2, .gz, .tar, .tbz2, .tgz, .Z, .7z, .xz, .exe, .tar.bz2, .tar.gz, .tar.xz, .arj, .cab, .chm, .deb, .dmg, .iso, .lzh, .msi, .rpm, .udf, .wim, .xar .cpio, .cbr, .cbz, .cb7, .cbt, .cba

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

function extract {
 if [ -z "$1" ]; then
    # display usage if no parameters given
    echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
    echo " extract <path/file_name_1.ext> [path/file_name_2.ext] [path/file_name_3.ext]"
 else
    for n in "$@"
    do
      if [ -f "$n" ] ; then
          case "${n%,}" in
            *.cbt|*.tar.bz2|*.tar.gz|*.tar.xz|*.tbz2|*.tgz|*.txz|*.tar) 
                         tar xvf "$n"       ;;
            *.lzma)      unlzma ./"$n"      ;;
            *.bz2)       bunzip2 ./"$n"     ;;
            *.cbr|*.rar)       unrar x -ad ./"$n" ;;
            *.gz)        gunzip ./"$n"      ;;
            *.cbz|*.epub|*.zip)       unzip ./"$n"       ;;
            *.z)         uncompress ./"$n"  ;;
            *.7z|*.arj|*.cab|*.cb7|*.chm|*.deb|*.dmg|*.iso|*.lzh|*.msi|*.pkg|*.rpm|*.udf|*.wim|*.xar)
                         7z x ./"$n"        ;;
            *.xz)        unxz ./"$n"        ;;
            *.exe)       cabextract ./"$n"  ;;
            *.cpio)      cpio -id < ./"$n"  ;;
            *.cba|*.ace)      unace x ./"$n"      ;;
            *)
                         echo "extract: '$n' - unknown archive method"
                         return 1
                         ;;
          esac
      else
          echo "'$n' - file does not exist"
          return 1
      fi
    done
fi
}

IFS=$SAVEIFS
安装步骤:

编辑 .bashrc 文件:vim ~/.bashrc
复制 Shell 代码到 .bashrc 文件
启动 bash shell:source ~/.bashrc
解压测试:

下载 Python 源码包:wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
解压 tar.xz 文件:extract Python-3.7.0.tar.xz

一、linux下解压命令、压缩命令大全

linux常用的解压和压缩命令如下:

1、.tar 

解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)

2、.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName

3、.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

4、.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName

5、.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName

6、.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz

7、.tar.bz
解压:tar jxvf FileName.tar.bz

8、.Z
解压:uncompress FileName.Z
压缩:compress FileName

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

10、.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName

11、.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName

12、.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName

13、.rpm
解包:rpm2cpio FileName.rpm | cpio -div

14、.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -


15、.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解压:sEx x FileName.*
压缩:sEx a FileName.* FileName

sEx只是调用相关程序,本身并无压缩、解压功能,请注意!


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


语法:gzip [选项] 压缩(解压缩)的文件名该命令的各选项含义如下:


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


gzip *% 把当前目录下的每个文件压缩成 .gz 文件。gzip -dv *% 把当前目录下每个压缩的文件解压,并列出详细的信息。gzip -l *% 详细显示例1中每个压缩的文件的信息,并不解压。gzip usr.tar% 压缩 tar 备份文件 usr.tar,此时压缩文件的扩展名为.tar.gz。

二、Linux解压tar.gz和tar.bz2的命令

  两者的命令主要是参数的不同,解压tar.gz和tar.bz2不同压缩文件的命令如下:
  1 解压tar.gz文件

tar -zxvf ×××.tar.gz
  
  • 1

  2 解压tar.bz2文件

tar -jxvf ×××.tar.bz2
  
  • 1

  -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

参考:

  1. linux下解压命令、压缩命令大全
  2. Linux解压tar.gz和tar.bz2的命令
  3. Linux下的解压命令小结
  4. linux下解压命令大全
  5. linux下 各种解压文件使用方法-简书
  6. linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结-脚本之家
  7. Linux 压缩命令与解压脚本
  8. linux下如何解压缩zip,tar,tar.gz,tar.bz2文件