linux 通用解压

我记得的命令只有 tar.bz2、tar.gz 以及 7z,早先看过一篇文章,用脚本实现通用解压的,现在去查一下,好像找不到原来的文章了,不过另有三个可以用的。

一、http://www.apoyl.com/?p=1071
安装
wget  http://www.apoyl.com/wp-content/sh/apoylextract.sh
更改权限
chmod 700  apoylextract.sh
#帮助
./apoylextract.sh -h
#案例
./apoylextract.sh test.tar.gz

只用于解压 *.bz2, *.gz, *.tar, *.tar.gz, *.zip

二、perl 脚本,我 eix perl 发现是有安装的。
脚本可参照上文。
压缩:exInOne a 归档文件 文件1 <文件2 文件3 …>
解压:exInOne x 归档文件
查看:exInone l 归档文件
我试了一下,不支持 xz。支持压缩和解压。
三、这是最推荐的 ~/.xxshrc 脚本。
原文http://zxxccc.blogspot.com/2011/03/linux_25.html
    #写入.bashrc或.zshrc
    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.bz2)   tar xjfv $1    ;;
             *.tar.gz)    tar xzfv $1    ;;
             *.bz2)       bunzip2v $1    ;;
             *.rar)       rar x $1       ;;
             *.gz)        gunzip $1      ;;
             *.tar)       tar xf $1      ;;
             *.tbz2)      tar xjf $1     ;;
             *.tgz)       tar xzf $1     ;;
             *.zip)       unzip $1       ;;
             *.Z)         uncompress $1  ;;
             *.xz)        xz -d $1       ;;
             *.7z)        7z x $1        ;;
             *)           echo “‘$1’ cannot be extracted via extract()” ;;
           esac
       else
         echo “‘$1’ is not a valid file”
       fi
    }
原文也是不支持 xz,我把它添进去,然后遇到 tar.xz 的,就要解压两次了。参数传递我懒得学,以后会了再完善一下这个解压。
用法 ex ./***.tar.bz2

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s