为什么错误" find:paths必须先于表达式"从" find"返回多个结果时触发

时间:2015-01-13 12:41:32

标签: linux bash

为什么错误发现:路径必须在表达式之前:input.txt触发器何时 从子进程中的“find”返回多个结果,但是在返回单个结果时却没有?

dir包含三个文件。

ls
input2.txt  input.txt  input.log 

只有一个文件与查询查询匹配,结果可以分配给$ foo

$ foo=$(find . -name *.log )
echo $foo
./plot.log

当返回> 1个结果时,发现抛出错误。

$ foo=$(find . -name *.txt )
find: paths must precede expression: input.txt

我不明白为什么会这样。

1 个答案:

答案 0 :(得分:13)

你需要quote个特殊字符,因为在运行命令之前globs是expanded

find . -name '*.txt'

要查看通配符是如何工作的,请尝试举例echo *.txt - 如果当前目录中没有以{{1}结尾的文件,则实际打印*.txt }。