1

Я хочу найти все файлы .c и .h в моем каталоге, за исключением файлов в папках 'test' (их несколько).

Каталог, который я ищу, имеет тестовые каталоги, такие как:

myDirectory/abc/def/test
myDirectory/abc/def/ghi/test

и т.п.

Пока что я пробовал:

find /myDirectory/* -type d -name test -prune -o -name '*.c' -print

и это, кажется, работает для файлов .c, но когда я запускаю:

find /myDirectory/* -type d -name test -prune -o -name '*.c' -o -name '*.h' -print

ничего не возвращается вообще.

Как включить несколько типов файлов?

1 ответ1

1

Вы должны сгруппировать предикаты с двумя -name :

find /myDirectory/* -type d -name test -prune -o \( -name '*.c' -o -name '*.h' \) -print

Обратная косая черта необходима, чтобы избежать скобок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .