Как избежать перехода по определенным каталогам при использовании функции «find»?

Как избежать перехода по определенным каталогам при использовании функции «find»?

В настоящее время у меня есть эта команда find, которая избегает перехода по определенным каталогам:

find . \! \( -name ".hg" -prune \) \! \( -name "localhost" -prune \) \! \( -name "logs" -prune \) -type f

Команда работает так, как я хочу, но я ищу более лаконичное решение. Мне кажется, что я много повторяюсь, и должен быть более элегантный/короткий способ сделать то же самое.

решение1

find . \( \( -name .hg -o -name localhost -o -name logs \) -prune \) -o -type f

решение2

find . -not \( -regex ".*/(.hg|localhost|logs)" -prune \) -type f

Связанный контент