linux仅在匹配第二个文件时发现exec错误

时间:2019-07-10 20:58:27

标签: linux bash

我知道我可以单引号名称参数'* any' 但是问题是为什么我只会在始终匹配的第二个文件上出现错误

如果我只有一个文件,则没有任何错误

我想理解

运行命令

 find . -type f -name *any -exec grep -H "lang" {} \; | less

我明白了 查找:路径必须在表达式之前: 用法:查找[-H] [-L] [-P] [-Olevel] [-D help | tree | search | stat | rates | opt | exec | time] [path ...] [expression]

重现问题的步骤

mkdir anydir
cd anydir
touch file1.any

运行命令

 find . -type f -name *any -exec grep -H "lang" {} \; | less

无输出无错误:正确

添加第二个非.any文件以供测试

touch file.txt

再次运行命令

find . -type f -name *any -exec grep -H "lang" {} \; | less

无输出无错误:正确c

现在添加第二个任何文件

touch file2.any

再次运行命令

find . -type f -name *any -exec grep -H "lang" {} \; | less

错误输出 查找:路径必须在表达式之前:file2.any 用法:查找[-H] [-L] [-P] [-Olevel] [-D help | tree | search | stat | rates | opt | exec | time] [path ...] [expression]

确认添加第三个文件.any

touch file3.any

再次运行命令

find . -type f -name *any -exec grep -H "lang" {} \; | less

错误输出 查找:路径必须在表达式之前:file2.any 用法:查找[-H] [-L] [-P] [-Olevel] [-D help | tree | search | stat | rates | opt | exec | time] [path ...] [expression]

请注意,错误始终是file2.any

我真的听不懂

0 个答案:

没有答案