与 find 中参数 -name 匹配的值一起使用的双引号

use*_*132 -2 shell

为什么要与参数匹配的值-namefind必须用双引号标记?

# find / -type f -name *.out |wc -l 1>mv.out                                  
0403-027 The parameter list is too long.
# cat mv.out                                                   
       0
# find / -type f -name "*.out" |wc -l 1>mv.out                                   
# cat mv.out                                                                                           
  146302
Run Code Online (Sandbox Code Playgroud)

Phi*_*pos 6

如果没有双引号,*.outshell 会展开它,这意味着它会被当前目录中匹配的所有文件名替换*.out(主要是任何.out以点结尾但不以点开头的文件)。在您的情况下,似乎至少有两个匹配的文件find作为参数传递给。find不知道如何处理它们并抱怨参数列表太长。

通过引用模式,shell 保持原样,只需删除引号并find看到一个未触及的 parameter *.out,这可能是您想要的。