zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Kotlin技术入门以及和Java对比.md
    最新版Charles破解方法(Mac+Windows).md
    阿里移动云专场专题.md
    win10下 github+hexo搭建个人博客.md
    Java内存回收机制.md
    基于补偿的数据库分布式事务实践
    Log4J,在踩坑中升级版本
    关于服务注册与发现
    JVM内存模型-重排序&内存屏障
    GC初识
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/10408423.html
Copyright © 2011-2022 走看看