Почему find -exec выполняет только один результат?

Вот что я проверил:

find mydir -maxdepth 2 -name .project -or -name .classpath

дает выход:

 mydir/.project mydir/.classpath 

между тем

find mydir -maxdepth 2 -name .project -or -name .classpath -exec echo {} \;

дает выход:

 mydir/.classpath 

поэтому указан только один найденный элемент, почему?

xargs работает так, как ожидалось:

find mydir -maxdepth 2 -name .project -or -name .classpath | xargs -I {} echo {};

печатает:

 mydir/.project mydir/.classpath 

Я что-то пропустил -exec ?

  • найти и заменить макрос в libreoffice
  • моя команда разрешений работает неправильно
  • Odd alias "find. -name '* \! {*} *' -ls "в Unix Power Tools
  • Почему «find -exec cmd {} +« нужно положить в конец »{} + '?
  • Как я могу найти все файлы ascii в одном каталоге, в котором есть слово «рубашка»? Начиная с корня
  • Найти и заменить строку в именах каталогов
  • комбинировать поиск с другими командами: когда использовать -exec и когда использовать трубу?
  • Как указать путь к файлу с помощью find при поиске файлов с помощью -regex
  • One Solution collect form web for “Почему find -exec выполняет только один результат?”

    Выражение find в основном представляет собой список предикатов (булевых условий). Почти во всех булевых контекстах, включая выражения find , оператор AND имеет приоритет над OR . Если я добавлю некоторые круглые скобки, чтобы явно проиллюстрировать правила приоритета, ваше второе выражение find логически эквивалентно

     ( -name .project ) OR ( -name .classpath AND -exec echo) 

    Чтобы получить желаемое поведение, вам нужно

     find mydir -maxdepth 2 \( -name .project -o -name .classpath \) -exec ... {} \; 
    Interesting Posts

    Могут ли пользователи в группе получить доступ к файлу, находящемуся в домашнем каталоге другого пользователя?

    Храните все файлы того же месяца + последний файл до этого, удалите остальные

    Используйте Diff to Exclude Quote Symbol – "

    Удаление пользователей оболочкой nologin

    Звуковое шумоподавление звука микрофона с помощью JACK, ALSA, Audacity?

    Сравните n значений столбцов между каждой записью в 2 файлах и apend данные из файла 2 в файл 1

    CSV – преобразование НЕКОТОРЫХ столбцов в строки с дублированными данными

    Что такое ELF Magic?

    systemd: переместить getty в tty2 + и запустить скрипт на tty1

    Запустить исполняемый файл с помощью xdg-open

    Команда работает с терминалом, но не в .profile

    Кошка никогда не читает с терминала?

    Синтаксическая ошибка: слово «неожиданно» (ожидается «)») при удаленном запуске, но без проблем выполняется локально

    Зашифрована ли моя домашняя папка?

    Могу ли я переместить запущенное приложение на другой X-сервер?

    Linux и Unix - лучшая ОС в мире.