Справочная страница для 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`