有時候咱們須要反選某個文件之外的其餘文件,就會用到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
實例: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