найти, как исключить путь - PullRequest
0 голосов
/ 01 ноября 2019

Я хочу найти все файлы в / usr /, но не в / usr / share

из этого поста Исключить подкаталог, используя find Я пытался:

find /usr -type f -not -path /usr/share -print

-> распечатать файлы из / usr / share

из этого поста Как исключить каталог из поиска. команда Я пытался:

find /usr -path /usr/share -prune -print 

-> ничего не выводит, хотя в / usr / bin есть файлы

Я также пытался:

find /usr -path ! /usr/share -type f -print 

->выводит ошибку

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

По умолчанию логическое значение and используется для объединения операторов и основных цветов. Так что find /usr -path /usr/share -prune -print эквивалентно find /usr -path /usr/share -prune -a -print. Но вы хотите напечатать вещи, которые не обрезаны. Поэтому используйте:

find /usr -path /usr/share -prune -o -print

Если вы хотите ограничить поиск обычными файлами:

find /usr -path /usr/share -prune -o -type f -print
0 голосов
/ 01 ноября 2019

Отбрасывание -print и отрицание -path ... -prune:

find /usr ! \( -path '/usr/share' -prune \) -type f
...