сделать поиск неудачным, когда ничего не найдено

Когда find вызывается, чтобы ничего не найти, он все равно выходит с кодом 0. Есть ли способ заставить его вернуть код выхода, указывающий на сбой, когда файл не был найден?

Если ваш grep поддерживает чтение строк с -z разделителем (например, GNU grep с -z ), вы можете использовать его для проверки, если что-то выводится, find :

 find /some/path -print0 | grep -qz . 

Чтобы передать данные другой команде, вы можете удалить параметр -q , позволяя grep передавать данные без изменений, все еще сообщая об ошибке, если ничего не произошло:

 find /some/path -print0 | grep -z . | ... 

В частности, ${PIPESTATUS[1]} в bash должен содержать статус выхода grep .