com zsh
:
files=(*.RAW(DN))
if (($#files)); then
echo Yes
else
echo No
fi
Se você estiver interessado apenas em arquivos regulares (ou links simbólicos para arquivos regulares) como seu -f
implica, seria:
file=(*.RAW(ND-.))
em vez disso.
POSIXly:
has_regfiles_by_extension() {
for ext do
for file in .*."$ext" ."$ext" *."$ext"; do
[ -f "$file" ] && return
done
return 1
done
}
if has_regfiles_by_extension RAW raw; then
echo YES
else
echo NO
fi
Se você quisesse usar ls
, poderia fazer:
if ls -Aq | grep -q '\.RAW$'; then
echo yes
else
echo no
fi
Um dos benefícios é que, se o diretório não for legível, você receberá uma mensagem de erro (em vez de ser silenciosamente ignorado no caso de shell globs).