Вам просто не вистачає присудка, який говорить про те, що ви шукаєте (наприклад, -name
)
Щоб знайти в домашньому каталозі по імені:
find ~ -name \*.pdf
Зауважте, що підстановку *
потрібно уникати, щоб оболонка не інтерпретувала її, перш ніж знайти на неї руки. Використання '*.pdf'
та "*.pdf"
матиме такий же ефект, як і \*.pdf
.
Щоб знайти нечутливий регістр:
find ~ -iname \*.pdf
Обрізати результати лише на файли (вираз з іменем, мабуть, піклується про це за вас, але про всяк випадок, якщо у вас є якісь дивно названі каталоги):
find ~ -type f -iname \*.pdf
Щоб переконатися в пошуку наступних символьних посилань (зазвичай я хочу це робити сам під час пошуку):
find ~ -follow -type f -iname \*.pdf
Щоб зробити щось із знайденими файлами: ви можете скинути це у файл, використовуючи перенаправлення stdout (наприклад, торкнутись > filename
в кінці) або скористатися -exec
опцією для запуску команди (детальну інформацію див. На сторінці man). Останній запускає команду по кожному файлу одночасно. часто швидше дозволити xargs
команді передавати знайдені файли як аргументи іншій команді, всі відразу або великі шматки. Наприклад, для ad-hoc (але невкладених) перехоплення через файли заголовка:
find ~ -follow -type f -name \*.h | xargs grep -nH "identifier"
І одне остаточне розширення, щоб остання команда працювала належним чином, якщо у вас є файли та каталоги з пробілами:
find ~ -follow -type f -name \*.h -print0 | xargs -0 grep -nH "identifier"
find
це далеко не даремно.