Путаница в отношении параметра «-print» в команде «find»

Я новая пчела для Linux. У меня вопрос о find команды. Когда я ищу файл под каталогом, я хотел бы пропустить подкаталог с именем publish

 find ./ -path ./publish -prune -o -iname rdesvc -type f -print 

Он отлично работает:

 ./release/apps/rdeSvc/server/linux/rdeSvc 

Но, если я удалю параметр -print :

 find ./ -path ./publish -prune -o -iname rdesvc -type f 

Он выведет имя подкаталога с результатом поиска:

 ./publish ./release/apps/rdeSvc/server/linux/rdeSvc 

Я чувствую замешательство. Почему publish подкаталога publish если я удалил параметр -print ?

Мое распределение – CentOS 6.6 64 бит.

Это комбинация действия по умолчанию, используемого для find-print и find приоритета оператора .

 find ./ -path ./publish -prune -o -iname rdesvc -type f -print 

интерпретируется как

 find ./ \( -path ./publish -prune \) -o \( -iname rdesvc -type f -print \) 

поэтому ./publish обрезается, и все, что соответствует rdesvc , печатается.

Но

 find ./ -path ./publish -prune -o -iname rdesvc -type f 

интерпретируется как

 find ./ \( \( -path ./publish -prune \) -o \( -iname rdesvc -type f \) \) -print 

поэтому ./publish обрезается и печатается, и все, что соответствует rdesvc , печатается. (Действие -prune соответствует true .)