2015-05-12 3 views
0

Я нахожусь на OS/X yosemite. Я выполнял подобные поиски, например, следующие несколько раз: неясно, почему это не сработает здесь.«найти» с подстановочным знаком

Поиск является:

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

Он не возвращает ничего .

Теперь, что должно оно возвращается? Ну давайте удалить расширение и повторно запустить поиск:

$find . -name \*assembly\* 

Ну что возвращает количество элементов - включая первый .. заканчивается .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 

Так почему же первый поиск не удается?

ответ

0

OK обнаружен ответ.

\* 

подстановочные является не матч ноль или более символов. По-видимому, соответствует одному или нескольким символам.

Следующая делает работы

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

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

Вы уверены, что вы не имеете неразрывный пробел или что-то другое странное в имени файла 'mllib-Perf-тесты-assembly.jar'? В противном случае, я думаю, что ваша реализация 'find' нарушена. – BroSlow

+0

Y наверняка. Файл создается процессом сборки apache-spark, который используется многими разработчиками K. – javadba

Смежные вопросы