我注意到很多 bash 實用程序,例如ls
、cp
、mv
、grep
使用正規表示式和模式匹配。例如 * [] {} 等符號。
但是,我發現這在某些方面與我在互聯網上找到的其他正則表達式教程有所不同。這些實用程式是否遵循特定的標準或某處的捷徑的完整清單?
謝謝
答案1
雖然類似,但您所指的通配符模式不是正規表示式;而是正規表示式。他們是全域模式在這種背景下,貝殼圖案。它們由 shell 本身擴展,而不是由ls
、cp
等命令擴展。它們是可以透過以下方式執行的程序任何殼。
當在 shell 中鍵入命令時,shell 會解析標記(單字),它所做的事情之一就是展開全域模式到適當的文件名。在最常見的情況下,這些檔案名稱隨後由 shell 作為所呼叫命令的參數清單提供。
標準化
這些 shell 模式已針對 Unix 類別作業系統進行了標準化POSIX 規格:模式匹配表示法。
一些 shell(Bash 和 Korn shell)更進一步,擴展這些模式來實現擴展的全局。有關詳細信息,請參閱相關部分格雷格的維基。