Useful Shell Option – extglob 和 shopt命令


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章