Shell
find 實用程序無法辨識括號表示法
我在目前文件夾中有兩個文件:
submitWeb.m
送出.m
以下
find
不顯示這兩個文件:find . -regex .*submit\(Web\)?\.m
但是上面的正則表達式在 emacs 緩衝區中工作正常,即使用
isearch-forward-regexp
.的預設
regextype
值為。find``emacs
但似乎將其
find
視為\(
文件名中的左括號,這與 emacs 正則表達式語法不同。那麼這是一個錯誤還是我對
find
手冊頁的誤解?
似乎問題是
\(
由shell首先解釋的。例如,您在目前目錄中有一個文件,名為:
富(。測試
然後
ls foo\(.text
和
ls "foo(.text"
兩者都有效。
因此,以下工作:
find . -regex ".*submit\(Web\)?\.m"
編輯:
單引號也適用於此。
單引號和雙引號之間的區別,請參閱這篇文章:bash 中的單引號與雙引號