2012-10-05 72 views
1

爲什麼'save $'與名爲save的文件不匹配?在bash中的find命令中的正則表達式

[email protected]:/home/tiger# ls /home/test 
save 
[email protected]:/home/tiger# find /home/test -regex 'save$' 
[email protected]:/home/tiger# find /home/test -regex '.*save$' 
/home/test/save 
+0

這個問題是關於「程序員常用的軟件工具」,所以我認爲它應該重新打開。 –

+0

這個問題可以這樣重新編寫:爲什麼'find DIR -regex'將正則表達式視爲總是有一個前導'''錨點和尾部'$'錨點? –

回答

1

由於正則表達式與完整路徑(即/ home/test/save)匹配,而不僅僅是文件名'save'。

+0

通常你需要使用'^'和'$'錨來匹配整個字符串,並且,如OP所示的例子,允許'$'。但它好像也有一個隱含的'^'。問題依然存在:爲什麼? –