Bash Shell有個extglob選項,開啓之後Shell可以另外識別出5個模式匹配操作符,能使文件匹配更加方便。
開啓方法很簡單,使用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)
shopt命令
內置命令shopt(shell option)開啓、關閉和列出那些控制着shell行爲的某些bash特性。舉例來說,下面的命令將使bash在擴展模糊文件引用時,包含那些以句號(.)開頭的文件名,-s表示設置:
$ shopt -s dotglob
通過下面的命令可將這項特性關閉(默認),-u表示取消設置:
$ shopt -u dotglob
如果只將特性的名稱作爲shopt唯一的參數,shell顯示該特性是如何設置的:
$ shopt dotglob
dotglob off
命令shopt不帶任何選項或者參數時,將列出由shopt控制的那些特性及其狀態。命令shopt -s不帶參數時,將列出那些由shopt控制並設置爲開啓的特性。命令shopt –u將列出那些被取消或者關閉的bash特性。表8-13列出了bash特性。
使用shopt設置set ±o特性
提示 可以使用shopt設置或者取消那些由set ±o控制的特性。使用常規的shopt –s或者-u語法,幷包含-o選項。舉例來說,下面的命令將開啓noclobber特性:
$ shopt –o –s noclobber
博文原地址
http://fyan.iteye.com/blog/1171470