Linux命令行万能解压命令


前言

在Linux下,压缩包的格式有很多种,在命令行下进行解压,解压不同的压缩包,需要执行不同的命令及参数,我们往往记不住那么多命令。我们可以写一个万能的解压命令,来替代这些繁多的解压命令,这样我们只需要记住一条命令就可以了。


一、创建脚本

在用户目录创建一个.autoex.sh脚本。

#copy from https://ynome.wordpress.com/2013/04/14/linux-%E9%80%9A%E7%94%A8%E8%A7%A3%E5%8E%8B/

ex () {
    
    
        if [[ -z “$1]] ; then
               print -P “usage: \e[1;36mex\e[1;0m < filename >”
               print -P ”       Extract the file specified based on the extension”
        elif [[ -f $1 ]] ; then
           case $1 in
             *.tar)       tar xvf  $1    ;;
             *.tbz2)      tar xvf  $1    ;;
             *.tgz)       tar xvf  $1    ;;
             *.tar.bz2)   tar xvf  $1    ;;
             *.tar.gz)    tar xvf  $1    ;;
             *.tar.xz)    tar xvf  $1    ;;
             *.tar.Z)     tar xvf  $1    ;;
             *.bz2)       bunzip2v $1    ;;
             *.rar)       rar x $1       ;;
             *.gz)        gunzip $1      ;;
             *.zip)       unzip $1       ;;
             *.Z)         uncompress $1  ;;
             *.xz)        xz -d $1       ;;
             *.lzo)       lzo -dv $1     ;;
             *.7z)        7z x $1        ;;
             *)           echo "'$1' cannot be extracted via extract()" ;;
           esac
       else
         echo “‘$1’ is not a valid file”
       fi
    }


             # *.tar)       tar xvf  $1     ;;
             # *.tbz2)      tar xvjf $1    ;;
             # *.tgz)       tar xvzf $1    ;;
             # *.tar.bz2)   tar xjvf $1    ;;
             # *.tar.gz)    tar xvzf $1    ;;
             # *.tar.xz)    tar Jxf  $1    ;;
             # *.tar.Z)     tar xvZf $1    ;;

脚本来源

二、修改.bashrc文件

在.bashrc 中增加如下内容:

if [ -f ~/.autoex.sh ]; then
     . ~/.autoex.sh
fi

在这里插入图片描述
修改完成之后,执行如下命令使之生效:

source ~/.bashrc

三、测试

解压命令为:

ex file

1. 解压.zip后缀压缩文件
ex xxx.bin

2.解压.tar.xz后缀压缩文件
ex xxx.tar.xz

3. 解压.7z后缀压缩文件
ex xxx.7z

总结

因为这个命令可以满足大多数常见情况下解压的使用,所以我们称之为万能命令。但需要注意的是,这个命令并不能满足所有情况,我们可以根据实际使用情况修改完善.autoex.sh来完善这个万能解压命令ex。

猜你喜欢

转载自blog.csdn.net/chenkanuo/article/details/134377433