跑步:
$find . -name *.exe
给出:
./MakeItSo_1.2.2/MakeItSo_1.2.2/MakeItSo.exe
./MakeItSo.exe
但这些并不是目录中唯一的 exe 文件。例如,运行
$find . -name ATLTester.exe
给出:
./Debug/ATLDmoVexaTester.exe
答案1
这是因为 shell通配符。 尝试:
find . -name "*.exe"
不加引号时,*.exe
会扩展到*.exe
当前目录中的所有文件,除非没有文件。碰巧你那里只有一个这样的文件,所以你的原始命令实际上是:
find . -name MakeItSo.exe
如果当前目录中没有*.exe
文件,则不会发生 shell 通配符,find
将直接获取*.exe
参数,命令将按预期工作。另一方面,如果您有多个具有此扩展名的文件,则它们都将作为参数提供,find
这将导致语法错误。