'find'(命令)使用 -wholename 找不到任何内容

'find' (command) finds nothing with -wholename

为什么这个命令有效:

/home/user1/tmp $ find ./../.. -wholename '.*/tmp/file.c' -exec echo '{}' \;
./../../user2/tmp/file.c
/home/user1/tmp $

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

/home/user1/tmp $ find /home -wholename '.*/tmp/file.c' -exec echo '{}' \;
/home/user1/tmp $

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

开头

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

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