Чому цей файл не відображається?


21

За findдопомогою grepможна знайти файли, які відповідають шаблону:

# find | grep error
./solr-modifiedSolr4/SolrPhpClient/phpdocs/errors.html
./error_log
./includes/classes/error_log

Однак, використовуючи findодин файл, перший файл не знайдено:

# find . -name error*
./error_log
./includes/classes/error_log

Чому файл не findзнаходить, errors.htmlколи не використовується grep? Як findвикористовується також для показу цього файлу?

Відповіді:


42

Вам потрібно навести свій аргумент, error*оскільки оболонка розширює його. Отже, те, що ви зараз працюєте, це find -name error_logтому, що це те, що оболонка може його розширити (є файл, названий error_logу вашому поточному каталозі).

find . -name 'error*'

Це правильне виклик для вашого випадку використання.


12
альтернативне написання find -name error\*- одна клавіша менше натискати;) це має той самий ефект, *передається як грамотна зірочка команді find і не розширюється вашою оболонкою
zhenech

3
Якщо у вас виникають проблеми з оболонкою (як вона інтерпретує ваш командний рядок і передає всі аргументи та параметри фактичній команді), повторіть запуск команди, попередньо за допомогою echoкоманди. Отже, якби ви запустили, echo find . -name error*це find . -name error_log
вийшло
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.