Часто бывает, что проблему решает один ключ. Один ключ какой-то утилиты, который ищешь пару дней. Он делает "хорошо" в каком-то конкретном редком случае, и ты не ругаешься на него, ведь это реально редкий случай.
Но бывают и иные варианты...
$ find /etc/passwd -exec false \; $ echo $? 0
Мы ищем файл /etc/passwd, который есть в каждом unix - можете проверить. И при нахождении его исполняем false - сделать неправду / сделать ошибку - в зависимости от контекста.
И, что бы вы думали... Всё нормально! Ошибки нет, переменная кода возврата говорит, что всё ок...
$ find /etc/passwd -exec false '{}' '+' $ echo $? 1
А при таком синтаксисе уже таки находятся ошибки...
Идём в man и видим:
Формулировки прекрасны, никто явно не говорит о красивом профукивании в одном случае $? и его присутствии в другом... Лишь маленькая приписка о похожести на xargs нам может намекнуть.
В данном случае я зол на утилиту. И на документацию. Странно видеть такое в Unix. Ну и отпало желание в будущем использовать exec - в ряде случаев понятнее будет сразу xargs юзать.