
Собственно заинтересовался как с помощью find производить поиск c указанием нескольких имен файла, с наскоку не получилось своими силами сделать. Не долгое гугление дало результат:
Shell
find . -type f \( -name bukkit.yml -o -name spigot.yml \) -printf "%m %u %g %p \n"
Полез в man начал читать и нечего не понял, нет то что -о это логическое ИЛИ (-or) это я понял, но почему используется именно оно а не логическое И (-a или -and) не понял от слова совершенно, по логике вещей должно быть именно логическое И, так как мне нужет и тот и тот файл, и зачем нужны скобки тоже не понял

Собственно начала экспериментировать, если команда
Shell
find . -type f \( -name bukkit.yml -o -name spigot.yml \) -printf "%m %u %g %p \n"
Хорошо, попробовал тоже самое без скобок:
Shell
find . -type f -name bukkit.yml -o -name spigot.yml -printf "%m %u %g %p \n"
Попробовал поставить логическое И, и в ответ тишина.
Попробовал просто без скобок и без действия -printf
Shell
find . -type f -name bukkit.yml -o -name spigot.yml
Собственно вопрос в том что я упускаю что с логическим И вообще не работает, а вот с ИЛИ работает без вопросов, и почему с со скобками работает а без нет, и кстати вот в последнем случае вообще не понял почему просто поиск без явного указания действия сработал?