我很难find在当前目录及其子目录中寻找匹配项。

当我跑步时find *test.c它只给我当前目录中的匹配项。(不在子目录中看)

如果我尝试find . -name *test.c我期望的结果相同,但是它只会给我一个子目录中的匹配项。当有工作目录中的文件应匹配时,它给了我:find: paths must precede expression: mytest.c

这个错误是什么意思,如何从当前目录及其子目录中获得匹配项?

答案

尝试将其引用 - 您正在遇到Shell通配符扩展,因此您实际上所传递的内容将看起来像:

find . -name bobtest.c cattest.c snowtest.c

…引起语法错误。因此,请尝试一下:

find . -name '*test.c'

注意文件表达式周围的单个引号 - 这些引号将阻止外壳(bash)扩展您的通配符。

来自: stackoverflow.com