Как возвратить true из find

Подскажите как сделать чтобы команда find возвращала TRUE и FALSE для оператора IF?

Пробовал так:

if find . -type f -regextype egrep -regex '.{150}.*' | wc -l;
  then echo "Найдены файлы с недопустимой длиной имени. СТОП.";
else
  echo "Продолжаем работать";
fi

Из расчета, что TRUE != 0, а FALSE = 0. Но не получается прервать программу при результате find отличным от 0.


Ответы (1 шт):

Автор решения: eri
if [ $(find . -type f -regextype egrep -regex '.{150}.*' -print -quit) ];

$() - кладет вывод программы в перемнную

[] - делает проверку переменной на true\false (пусто - не пусто в данном случае)

-quit потому что в вашем коде нет смысла искать дальше, а достаточно одного файла

-print чтоб имя файла вывелось на stdout и попало в переменную

→ Ссылка