O stat
comando oferece, ou bash
oferece, uma maneira direta de verificar se se FILENAME
refere a um arquivo em vez de, digamos, a um diretório?
Usando bash
and stat
, aqui está minha solução feia:
if RESPONSE="$(LC_ALL=C stat -c%F FILENAME)"\
&& [ "$RESPONSE" = 'regular file'\
-o "$RESPONSE" = 'regular empty file' ]
then
# do something ...
fi
Veja também esta questão relacionada.