Исключить список каталогов из команды unix find

Если XXX - это pid

файл / proc / XXX / fd / * | grep / dev / pt

Но вы получите несколько строк на pty, если в процессе он открыт для нескольких ролей (например, stdin stdout и stderr)

Но я думаю, это не поможет для AIX и Linux, если только AIX сильно изменилось с тех пор, как я последний раз его использовал

3
10.04.2017, 17:18
1 ответ

Учитывая, что ваш exclude_file содержит пути, а не имена, вам необходимо использовать -path для сопоставления его записей. Чтобы исключить соответствующие подкаталоги каталогов, вам также необходимо -prune их. Это должно сработать:

find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -print

Если вы хотите видеть только файлы, вы можете печатать только файлы:

find . -type d \( $(printf -- "-path */%s -o " $(cat "$exclude_file")) -false \) -prune -o -type f -print
9
27.01.2020, 21:11

Теги

Похожие вопросы