linux 命令行封装,自己封装Linux命令行万能解压命令

问题背景

Linux下经常需要解压文件,直接在命令行敲命令解压是最便捷的。

但问题在于,不同的压缩格式,需要用不同命令和不同参数,完全记不住啊。

解决方式

既然记不住,那就换一种思路,假如有一条命令能解压所有文件,那就只需要记住这一条了。似乎可以写个脚本来处理,上网一搜,果然这么现实的需求早就有人想过并实现了。

看起来作者也是从别处学到的,就不继续溯源了。思路就是写个脚本来处理,如下

#写入.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

}

将上述脚本,直接写到.bashrc中即可。

后续想要解压某个文件,直接执行ex+文件名即可。如果碰到不支持的,那搜索一下,加入此脚本,后面也就支持了。

我的修改

我为了方便管理,是单独建立了一个.autoex.sh,并在.bashrc中加了

. ~/.autoex.sh

后面了解到,tar命令支持自动检测类型,于是把原脚本中tar系列的命令的参数,都改成了xvf.

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

}

其他

用了两年了,确实方便。但也有需要注意的,那就是,这个脚本是靠后缀名来区分文件的,要是碰到不靠谱的压缩文件制作者,搞错后缀名,就可能搞不定了。

这个时候,可以用file命令查看下文件类型,再对症下药。

实在不行,就用xdg-open命令用GUI程序打开试试(xdg-open的介绍:https://www.cnblogs.com/zqb-all/p/10666474.html)。

标签:解压,脚本,封装,tar,xz,file,Linux,xvf

来源: https://www.cnblogs.com/zqb-all/p/10854199.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值