问题背景

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

linux 命令行封装,自己封装Linux命令行万能解压命令相关推荐

  1. Linux命令行万能解压命令

    Linux命令行万能解压命令 Linux命令行万能解压命令 1.在用户目录创建一个.autoex.sh脚本 脚本的内容如: #copy from https://ynome.wordpress.com ...

  2. linux下解压命令.7z,CentOS 下安装7-Zip 以及常用的解压命令

    在SHH或者终端下输入:yum –y install p7zip(如果提示找不到资源,则要自己下载编译安装,命令如:) wget http://nchc.dl.sourceforge.net/sour ...

  3. linux+压缩率最高的命令,Linux压缩解压命令tar、tgz、tar.bz2压缩比率对比

    在Linux系统下用户最常用到的压缩解压命令是tar.tar.gz(tgz).tar.bz2,当然还有gz.zip.rar,下面将对tar.tar.gz(tgz).tar.bz2这三个命令进行压缩比率 ...

  4. linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...

    作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...

  5. Day 3 Linux(目录篇 、文件操作篇 、压缩解压相关命令, 编辑器vi 、编译器gcc 、调试器gdb、 makefile工程管理器初学)

    一.目录篇: 1.文件处理命令:cp 英文原意:copy 语法:cp -rp[源文件或目录][目的目录] 源文件可以同时是多个,即同时复制到多个文件 -r 复制目录 -p保留文件属性,比如文件创建时间 ...

  6. linux+gunzip解压命令,Linux gunzip命令解析 gunzip解压文件的方法

    我们已经讨论过 Linux 下 gzip 命令的用法.对于初学者来说,gzip 工具主要用于压缩或者展开文件.解压时,在 gzip 命令后添加 -d 选项即可,使用示例如下: gzip -d [com ...

  7. linux下unzip解压命令,linux的unzip解压命令的详细解释

    Linux中的unzip命令主要是用来解压zip格式的压缩文件.下面由学习啦小编为大家整理了Linux的unzip解压命令的详细解释,希望对大家有帮助! linux的unzip解压命令的详细解释 命令 ...

  8. Linux常用文件压缩/解压命令格式大全(tar、gzip、bzip2、zip、compress、cpio、compress、dd)建议收藏

    Linux常用文件压缩/解压命令格式大全 1. tar 2. gzip 3. bzip2 4. zip 5. compress 6. cpio 7.dd 1. tar 打包备份后的文件包缀:.tar ...

  9. [转]linux tar 解压命令总结

    转: http://blog.csdn.net/imyang2007/article/details/7634470 把常用的tar解压命令总结下,当作备忘: tar -c: 建立压缩档案 -x:解压 ...

最新文章

  1. 朋友圈装死,微博蹦迪,Python教你如何掌握女神情绪变化 | CSDN博文精选
  2. 语义分割--Dilated Residual Networks 之转载
  3. 互联网的本质:也论 Web2.0 和 Web1.0
  4. Android------Android.mk调用shell脚本
  5. 事务回滚什么意思 try_三问Spring事务:解决什么问题?如何解决?存在什么问题?...
  6. 如何用js获取浏览器URL中查询字符串的参数
  7. cuda cudnn tensorflow对应_Ubuntu18.04下安装Tensorflow+cuda+cudnn+pytorch
  8. java获取access token_【Java示例】如何获取AccessToken
  9. 微信小程序教程、微信小程序开发资源下载汇总(6.16日更新,持续更新中……)...
  10. Oracle 11g 创建数据库
  11. 论计算机维护论文,论计算机装与维护毕业论文.docx
  12. 跳槽的新公司,我直接让项目的性能提升了一半
  13. GitLab CI 介绍
  14. Python加密破解爬取七麦数据网APP榜单数据
  15. php考研难么,版主2006年考研经验谈:考研并不难
  16. 长沙学院计算机科学与技术排名,长沙学院计算机科学与技术系
  17. DateTime获取两小时前的时间
  18. 用标号法求最短路径matlab,标号法求最短路径例题详解重点.ppt
  19. 台式网卡计算机,台式机网卡,台式机网卡在哪里
  20. 记录一次文本挖掘 情感分析的项目过程

热门文章

  1. 笔记本内置摄像头改装外置摄像头
  2. 创新思维引领跨越式发展
  3. 零拷贝技术浅浅析【kafka实现百万级吞吐量基础】
  4. Python中的包(python package)
  5. 自制极品五笔拼音for linux
  6. java实现kfc点餐系统
  7. 20.5文件操作-格式化读写
  8. linux进程的调度
  9. PHP基础语法,学习完直接上手
  10. 正则表达式 划分省市区(直辖市和附详细地址包括市,区)