'find' 带通配符

'find' with wildcard

我在 OS/X yosemite。我已经多次执行类似以下的搜索:不确定为什么它在这里不起作用。

搜索是:

$find . -name \*assembly\*.jar

它returns 没有

现在,应该 return 做什么?那么让我们删除扩展名并重新运行 搜索:

 $find . -name \*assembly\*

那么 return 有很多项目 - 包括第一个.. 以 .jar 结尾!

./mllib-tests/target/mllib-perf-tests-assembly.jar
./mllib-tests/target/streams/$global/assembly
./mllib-tests/target/streams/$global/assembly/$global/streams/assembly-inputs
./mllib-tests/target/streams/$global/assembly/$global/streams/assembly-outputs
./mllib-tests/target/streams/$global/assemblyOption
./mllib-tests/target/streams/$global/assemblyOption/$global/streams/assembly
./spark-tests/target/spark-perf-tests-assembly.jar
./spark-tests/target/streams/$global/assembly
./spark-tests/target/streams/$global/assembly/$global/streams/assembly-inputs
./spark-tests/target/streams/$global/assembly/$global/streams/assembly-outputs
./spark-tests/target/streams/$global/assemblyOption
./spark-tests/target/streams/$global/assemblyOption/$global/streams/assembly

所以..为什么第一次搜索失败了?

OK 发现了答案。

 \* 

通配符不是 零个或多个字符匹配。显然是一个或多个个字符匹配。

以下有效

$find . -name \*assembl\*.jar

./mllib-tests/target/mllib-perf-tests-assembly.jar
./spark-tests/target/spark-perf-tests-assembly.jar