'find'(命令)找不到-wholename

Dr *_*eco 1 linux directory bash find

为什么这个命令有效:

/home/user1/tmp $ find ./../.. -wholename '.*/tmp/file.c' -exec echo '{}' \;
./../../user2/tmp/file.c
/home/user1/tmp $
Run Code Online (Sandbox Code Playgroud)

这个命令不起作用?(一无所获)

/home/user1/tmp $ find /home -wholename '.*/tmp/file.c' -exec echo '{}' \;
/home/user1/tmp $
Run Code Online (Sandbox Code Playgroud)

Die*_*ego 6

第一个命令生成以./../...开头的文件名.因此,整个名称模式将匹配,因为它们始于..

第二个命令生成以/home.开头的文件名.但是,整个名称模式仍然在寻找从.这种情况下的任何文件都不匹配的路径.

请注意,模式不是正则表达式.如果您期待它们,请查看该-regex选项.