Shopt命令(删除排除)
有时候我们需要反选某个文件以外的其他文件,就会用到rm -rf!(file)命令,但是有时候这条命令会报错显示 -bash: !: event not found
解决办法:shopt -s extglob开启模式匹配功能
shopt命令
shopt命令用于显示和设置shell中的行为选项,通过这些选项以增强shell易用性。
shopt命令若不带任何参数选项,则可以显示所有可以设置的shell操作选项。
开启与关闭
开启shopt命令:shopt -s extglob
关闭shopt命令:shopt -u extglob
开启之后,以下5个模式匹配操作符将被识别:
- ?(pattern-list) - 所给模式匹配0次或1次;
- *(pattern-list) - 所给模式匹配0次以上包括0次;
- +(pattern-list) - 所给模式匹配1次以上包括1次;
- @(pattern-list) - 所给模式仅仅匹配1次;
- !(pattern-list) - 不匹配括号内的所给模式。
实例:
删除文件名不以jpg结尾的文件:
rm -rf !(*jpg)
删除文件名以jpg或png结尾的文件:
rm -rf *@(jpg|png)
删除除aa和bb目录以外的其它目录或文件
rm -rf !(aa|bb)
需要注意的是,shopt命令的开启与关闭要与所用的命令分行隔开,避免出现在同一行
#!/bin/bash
shopt -s extglob
rm -fr /home/jenkins/workspace/kada-admin-vue/!(node_modules|mydir)
shopt -u extglob
Shopt命令(删除排除)的更多相关文章
- Bash 为何要发明 shopt 命令
在 Bash 中,有两个内置命令用来控制 Bash 的各种可配置行为的开关(打开或关闭),这些开关称之为选项(option).其中一个命令是 set,set 命令有三种功能:显示所有的变量和函数:修改 ...
- 使用exec命令删除前几天产生的日志
上次学习了访问某个网站并产生相应的日志保存在指定位置,但是时间长了,日志会占用磁盘大量的空间,下面使用exec这个命令删除之前的日志: 命令格式: find 目录绝对路径 -mtime +n(时间) ...
- 使用ar命令删除iOS静态库重复编译的.o文件
关于 xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误 看这里 http://www.cnblogs.com/cocoajin/p/3917709.ht ...
- hibernate session.createSQLQuery(sql); 通过命令删除
@Override public boolean deleteBySql(String sql) { Session session = getSession(); @SuppressWarnings ...
- 在TFS 2013上,使用tf workspace命令删除其他用户的工作区
8月25日补充:如果想批量删除工作区,你可以使用第三方工具MSBuild Sidekick http://www.attrice.info/downloads;或者自己编写一个bat脚本,但是缺陷是需 ...
- 如何将Linux rm命令删除的文件放入垃圾箱
因为rm命令删除的文件是不会放入垃圾箱的,所以无法恢复,下面小编就给大家介绍一种方法,通过替换Linux rm命令的方法,从而将rm命令删除的文件放入垃圾箱. 方法: 1. 在/home/userna ...
- DedeCMS版权信息SQL命令删除
dedecms织梦系统底部会自动带有官方链接power by dedecms字样,很多新用户想去除官方的链接,底部调用标签为{dede:global.cfg_poweby/},方法很多,但不鼓励大家删 ...
- 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符及在vim中设置tab缩进为4个字符
1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符 在命令模式下,使用正则表达式匹配 行首有空白字符行的模式:^[[:space:]] ...
- linux 下用find命令查找文件,rm命令删除文件
linux 下用find命令查找文件,rm命令删除文件. 删除指定目录下指定文件find 要查找的目录名 -name .svn |xargs rm -rf 删除指定名称的文件或文件夹: find -t ...
随机推荐
- SQL列子 转载
- Maven多项目继承:dependencyManagement scope=import
maven的多项目结构中,可以使用parent定义起父项目,从而从父项目中继承依赖等属性.但是美中不足,maven只能单继承,即一个项目只能使用parent标签定一个父级项目. maven2.9之后的 ...
- 关闭防火墙,selinux,交互式设置IP的脚本
脚本内容: #!/bin/bash # ens=$(cat /proc/net/dev | awk '{if($2>0 && NR > 2) print substr($1 ...
- 使用Oracle BBED修改Oracle11g数据库实例名称
by 蔡建良 2019-2-19 数据库名称存在SYSTEM01.DBF表空间,所以先查出你要修改的数据库的DBID和DBNAME. 一. 查询数据库实例名称 加载ORCL实例数据库的SYSTEM01 ...
- Google SketchUp Cookbook: (Chapter 2) Following Paths with Follow Me
软件环境 SketchUp Pro 2018 参考书籍 Google SketchUp Cookbook Follow Me工具 Follow Me工具,将2D图形沿着一条路径挤出生成3D物体. 使用 ...
- 生成3位的序列号_仅仅CASE WHEN的简单应用
PNo, , ) AS sn INTO #temp1 FROM tbl_test SELECT ), sn) ), sn) ), sn) END AS sn, PNo FROM #temp1
- mybatis关于ORM的使用以及设计(一)[ORM的初始化]
ORM WIKI中的解释.画重点 Object-relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is ...
- 没讲明白的水题orz
有一道解释程序的水题没给非计算机专业的同学讲明白orz,在这里再练一下.. 源代码完全没有缩进真是难以忍受.. p.s.懂递归就不用看了#include <stdio.h> int n = ...
- Win2008服务启动不能调用Office Word的解决方法
本文为大家分享一下如何解决Windows Server 2008 服务启动不能调用Office Word的问题,分享这个教程的原因是,今天在Windows server2008上部署一个应用时发现了一 ...
- 关于js-xlsx的简单使用
关于js-xlsx的简单使用 最近要做一个东西用到对excel的操作,就是在前端将excel加载进来,操作后再生成excel,在网上找了很多种办法,能够实现的demo是下面这个: 纯前端利用 js-x ...