38 lines
1.8 KiB
Markdown
38 lines
1.8 KiB
Markdown
|
|
# find
|
|||
|
|
|
|||
|
|
> Рекурсивно искать файлы или каталоги в дереве каталогов.
|
|||
|
|
> Смотрите также: `fd`.
|
|||
|
|
> Больше информации: <https://manned.org/find>.
|
|||
|
|
|
|||
|
|
- Найти файлы по расширению:
|
|||
|
|
|
|||
|
|
`find {{путь/к/каталогу}} -name '{{*.ext}}'`
|
|||
|
|
|
|||
|
|
- Найти файлы, соответствующие нескольким шаблонам пути/имени:
|
|||
|
|
|
|||
|
|
`find {{путь/к/каталогу}} -path '{{*/путь/*/*.ext}}' -or -name '{{*шаблон*}}'`
|
|||
|
|
|
|||
|
|
- Найти каталоги по имени без учёта регистра:
|
|||
|
|
|
|||
|
|
`find {{путь/к/каталогу}} -type d -iname '{{*lib*}}'`
|
|||
|
|
|
|||
|
|
- Найти файлы по шаблону, исключив определённые пути:
|
|||
|
|
|
|||
|
|
`find {{путь/к/каталогу}} -name '{{*.py}}' -not -path '{{*/site-packages/*}}'`
|
|||
|
|
|
|||
|
|
- Найти файлы в заданном диапазоне размеров, ограничив глубину рекурсии до "1":
|
|||
|
|
|
|||
|
|
`find {{путь/к/каталогу}} -maxdepth 1 -size {{+500k}} -size {{-10M}}`
|
|||
|
|
|
|||
|
|
- Выполнить команду для каждого файла (используйте `{}` для подстановки имени файла):
|
|||
|
|
|
|||
|
|
`find {{путь/к/каталогу}} -name '{{*.ext}}' -exec {{wc -l}} {} \;`
|
|||
|
|
|
|||
|
|
- Найти все файлы, изменённые сегодня, и передать результаты одной команде как аргументы:
|
|||
|
|
|
|||
|
|
`find {{путь/к/каталогу}} -daystart -mtime {{-1}} -exec {{tar -cvf archive.tar}} {} \+`
|
|||
|
|
|
|||
|
|
- Найти пустые файлы или каталоги и удалить их с подробным выводом:
|
|||
|
|
|
|||
|
|
`find {{путь/к/каталогу}} -type {{f|d}} -empty -delete -print`
|