2016-09-29 2 views
0

Что это такое и почему это не перечисление файлов, которые имеют «идею» в их именах?Почему моя команда `find` не работает?

/Applications/WebStorm.app/Contents$ find . "*idea*" -exec echo aaa {} \; | head 
aaa . 
aaa ./_CodeSignature 
aaa ./_CodeSignature/CodeResources 
aaa ./bin 
aaa ./bin/fsnotifier 
aaa ./bin/idea.properties 
aaa ./bin/inspect.sh 
aaa ./bin/libbreakgen.dylib 
aaa ./bin/libbreakgen.jnilib 
aaa ./bin/libbreakgen64.dylib 
find: *idea*: No such file or directory 

ответ

3

Вы пропускаете -name тест:

find . -name "*idea*" -exec echo aaa {} \; 

Без -name:

find . "*idea*" -exec echo aaa {} \; 

является find -ную все файлы/каталоги, в текущем каталоге (.), и файл/каталог, соответствующий *idea* в текущей директории, рекурсивно. Предположительно, нет файла/каталога с idea в их именах в текущем каталоге, следовательно, ошибка относительно *idea*.


В качестве примечания, если вы ищете только файлы, добавьте -type f:

find . -name "*idea*" -type f -exec echo aaa {} \; 
+0

Точно. Мы ответили на мой вопрос одновременно. Upvoted. Благодарю. –

+0

Вот почему я поддержал :-) Принять тоже, как только это позволит мне. –

0

Глупый меня, я забыл параметр -name. Эта команда перечисляет все содержимое папки ., следуя всем контекстам (несуществующих) "*idea*" папок.

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