Shopt命令(刪除排除)

有時候咱們須要反選某個文件之外的其餘文件,就會用到rm -rf!(file)命令,可是有時候這條命令會報錯顯示 -bash: !: event not found vue

解決辦法:shopt -s extglob開啓模式匹配功能node

 

shopt命令shell

shopt命令用於顯示和設置shell中的行爲選項,經過這些選項以加強shell易用性。
shopt命令若不帶任何參數選項,則能夠顯示全部能夠設置的shell操做選項。

開啓與關閉bash

開啓shopt命令:shopt -s extglob 
關閉shopt命令:shopt -u extglob 

開啓以後,如下5個模式匹配操做符將被識別:spa

  • ?(pattern-list) - 所給模式匹配0次或1次;
  • *(pattern-list) - 所給模式匹配0次以上包括0次;
  • +(pattern-list) - 所給模式匹配1次以上包括1次;
  • @(pattern-list) - 所給模式僅僅匹配1次;
  • !(pattern-list) - 不匹配括號內的所給模式。

實例:code

刪除文件名不以jpg結尾的文件: blog

rm -rf !(*jpg) 

刪除文件名以jpg或png結尾的文件:jenkins

rm -rf *@(jpg|png)

刪除除aa和bb目錄之外的其它目錄或文件event

rm -rf !(aa|bb)

 

須要注意的是,shopt命令的開啓與關閉要與所用的命令分行隔開,避免出如今同一行class

#!/bin/bash
shopt -s extglob
rm -fr /home/jenkins/workspace/kada-admin-vue/!(node_modules|mydir)
shopt -u extglob
相關文章
相關標籤/搜索