Справочная страница для find(1) гласит:
Если выражение не содержит никаких действий, кроме
-prune,
Однако между этими двумя выражениями, похоже, есть разница:
$ find . -path '*fo*' -prune -o -type f -print
./bar/xzyzzy
$ find . -path '*fo*' -prune -o -type f
./foo
./bar/xzyzzy
Почему ./foo включен в вывод последнего?
Я создал пример структуры дерева каталогов для выше:
$ cd $(mktemp -d)
$ mkdir foo
$ mkdir bar
$ touch foo/quux
$ touch bar/xzyzzy
Вывод команды find --version для меня:
find (GNU findutils) 4.4.2`
