shell脚本小工具之万能解压和压缩器---实现思路
本人也是接触linux很久了。但是对系统的架构也是一知半解,平时的使用情况也就是一键安装lnmp,顶多装redis,自己一直都专注于web开发,很少去接触系统运维方面的知识。一直觉得linux是一个很高大上的系统,一出错我根本无从下手。只能把错误丢给百度,或者google。我花了近一周时间去学习shell,总结起来shell脚本是一个命令行解析器,帮助用户和操作系统打交道。也遇到很多坑,if [ $type = 'en' ] 我写个if语句括号和变量一定要用空格隔开,语法特殊,跟其它语言有一定差别,比如case,esac不过学习shell的过程,让我更熟悉了vi编辑器,也发现原来可以这么玩,可以开发很多小工具,提高效率。好了,不多说了。
实现思路:其实很简单,用户选择压缩类型,然后判断是压缩还是解压,还有文件完整名称。shell取出后缀名,根据后缀名判断压缩类型。
贴代码:
#!/bin/bash #脚本说明 #压缩案例: sh ./ext.sh en /root/a.zip ./test 压缩类型 压缩后的文件名 要压缩的文件或者目录 #解压案例: sh ./ext.sh de ./a.zip 压缩类型 解压的文件名 (默认当前目录) type=$1 #压缩类型,en表示压缩,de表示解压 filename=$2 #文件名 to_filename=$3 #如果是压缩则是选择压缩的文件,解压则是输出的文件路径 ext="${filename##*.}" #获取到文件名的后缀 if [ ! $filename ] then #没有传入参数 echo 'error(100)not file(tar|gz|bz2|zip|rar)' exit 0 fi if [ $type = 'en' ] then #压缩至 #匹配相应的文件 case $ext in 'tar') eval "tar cvf $filename $to_filename" ;; 'gz') eval "tar zcvf $filename $to_filename" ;; 'bz2') eval "tar jcvf $filename $to_filename" ;; 'zip') eval "zip $filename $to_filename" ;; *) #不支持该类型 echo 'error(101)This type is not supported(tar|gz|bz2|zip)' ;; esac else #解压至 #匹配相应的文件 case $ext in 'tar') eval "tar xvf $filename" ;; 'gz') eval "tar zxvf $filename" ;; 'bz2') eval "tar jxvf $filename" ;; 'zip') eval "unzip $filename" ;; *) #不支持该类型 echo 'error(101)This type is not supported(tar|gz|bz2|zip)' ;; esac fi
PS:我只写了四种解压方式,不过你要多少就可以加多少,在case里面加入即可。这种解压器自己用用就好,因为会考虑到有些系统没有安装相应的解压软件。就会报命令语法错误的warning,比如你要解压rar,系统就得装rar的解压器。 如果有我写的不合理的地方,欢迎大神指教!
shell脚本小工具之万能解压和压缩器---实现思路相关推荐
- zzlinux运维自动化shell脚本小工具
from http://www.cnblogs.com/wang-li/p/5728461.html linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服 ...
- linux运维自动化脚本,linux运维自动化shell脚本小工具
linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...
- Linux命令行万能解压命令
Linux命令行万能解压命令 Linux命令行万能解压命令 1.在用户目录创建一个.autoex.sh脚本 脚本的内容如: #copy from https://ynome.wordpress.com ...
- linux shell 脚本练习,shell脚本小练习
shell脚本小练习 说明: 最近写了一些简单的小脚本,用到了一些逻辑判断语句.个人感觉挺好玩的,拿来跟大家分享下.同时也会做一些解释说明 脚本代码可能还有待优化,如果有冗余或者错误的地方还请批评指正 ...
- 上传txt生成字典 java_文件上传漏洞fuzz字典生成脚本小工具分享
前言 学习xss的时候翻阅资料发现了一个文件上传漏洞fuzz字典生成脚本小工具,试了试还不错,分享一下 配置 需要python2环境 使用方法 $ python upload-fuzz-dic-bui ...
- Linux shell脚本入门到实战详解(一)
Linux shell脚本入门到实战详解 一.shell 入门简介 1.1 什么是 shell # 为啥介绍shell 上次出了一篇linux 命令详解,得到了很多小伙伴的认可,有部分粉丝私信我,让我 ...
- dmsetup remove_all 这命令干啥的_分一个小知识,服务器上的一个解压与压缩文件的命令....
在服务器上对文件做解压操作,是一件非常常见的操作,如安装软件就有很多是要用的到这个操作的.去官网下载一个压缩包,然后解压,编译,再安装.当然网上是能找到相应的命令操作.但是每次都要去找命令,就算记住了 ...
- java zip加密压缩_Java解压和压缩带密码的zip文件过程详解
前言 JDK自带的ZIP操作接口(java.util.zip包,请参看文章末尾的博客链接)并不支持密码,甚至也不支持中文文件名. 为了解决ZIP压缩文件的密码问题,在网上搜索良久,终于找到了winzi ...
- java zip 解压 密码_Java解压和压缩带密码的zip文件过程详解
前言 JDK自带的ZIP操作接口(java.util.zip包,请参看文章末尾的博客链接)并不支持密码,甚至也不支持中文文件名. 为了解决ZIP压缩文件的密码问题,在网上搜索良久,终于找到了winzi ...
最新文章
- python单片机自动浇花_[MicroPython]TPYBoardv102自动浇花系统
- 多键开关 android8.0,手机桌面多键开关(SwitchPro Widget )
- python 在内网windows环境下pip三方包
- 你可能没看懂Supercell的新游戏
- ORACLE 错误:oralce record is locked by another user
- 简单选择排序_Python3三种简单排序(冒泡、插入、选择)的比较
- 存储图片到数据库中的一个异常信息
- VS2015图形界面YOLO3应用程序
- 微信小程序:自适应来电模拟器
- Python正态性检验(最简单的方法)
- Belief propagation
- 在C和C++定义最大最小整数值
- 【云原生之Docker实战】使用Docker部署phpMyAdmin数据库管理工具
- uniapp 录音_H5原生使用录音功能
- 疾病研究:荷兰进行的51号外显因子跳跃试验中4个孩子的肌肉中发现抗肌萎缩蛋白...
- 如何使用NPM来管理你的Node.js依赖
- git分支branch详解
- ORACLE中用for in 使用cursor
- Android多媒体(一) 音轨合成 我用双手成就你的梦想
- 数据库逻辑设计与物理设计
热门文章
- 去中心网络服务器,去IOE 去中心化_浪潮服务器_网络安全-中关村在线
- 相机模型-鱼眼模型/鱼眼镜头标定基本原理及实现(2)
- x264.exe下载
- C语言 找第一个只出现一次的字符
- on(submit,)
- 思维导图是什么?思维导图原理及其作用
- idea中Toggle Offline Mode是什么意思
- Pycharm配置环境本地训练yolov5(车辆检测)
- 32. 对c++中的smart pointer四个智能指针shared_ptr,unique_ptr,weak_ptr,auto_ptr的理解
- whistle 的使用