Shell

find 實用程序無法辨識括號表示法

  • May 27, 2013

我在目前文件夾中有兩個文件:

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 中的單引號與雙引號

引用自:https://unix.stackexchange.com/questions/77116