Поддерживает ли `find` несколько условий` maxdepth`?

Граница слова имеет такой же эффект, как -w, но может использоваться как часть выражения.

'\b'
Сопоставляет пустую строку на краю слова.
[...]
'\ Искать пустую строку в начале слова.
'\>'
Искать пустую строку в конце слова.

Искать bar только когда это целое слово, а foo где угодно (включая внутри более длинных слов):

grep -E 'foo|\'

3
10.09.2017, 18:43
2 ответа

Вы можете эмулировать его, используя -pruneдля разных совпадающих имен путей. Например, чтобы сопоставить /etcс глубиной 1, а /libс глубиной 2:

find /etc /lib/ \
    \( -regex '/etc/[^/]*/.*'       -prune \) \
 -o \( -regex '/lib/[^/]*/[^/]*/.*' -prune \) \
 -o -print

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

7
27.01.2020, 21:09

Нет, нельзя применять разные параметры -maxdepthк разным частям серии тестов find. Поскольку это глобальная опция, как вы указываете, она применяется ко всем тестам. Если вы укажете несколько параметров -maxdepth, последний будет учитываться и применяться ко всей команде.

5
27.01.2020, 21:09

Теги

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