Se você não quiser recursão, pode fazer
export DIR=/home/Savio/Dsktop/check
if ls ${DIR}/*.txt &>/dev/null && ls ${DIR}/*.csv &>/dev/null
then
echo "Found."
else
echo "Not found."
fi
Ou, em perl
:
perl -e '
$DIR="/home/Savio/Dsktop/check";
@a= glob "${DIR}/*.txt";
@b= glob "${DIR}/*.csv";
print @a && @b ? "Found.\n" : "Not found.\n"
'
Se você fizer desejar recursão, a solução proposta nas outras respostas funcionará. Você pode aumentar a velocidade fazendo find
parar após a primeira correspondência:
export DIR=/home/Savio/Dsktop/check
CSV=$(find "$DIR" -name *.csv|head -n1)
TXT=$(find "$DIR" -name *.txt|head -n1)
[ ! -z "$CSV" ] && [ ! -z "$TXT" ] && echo Found || echo Not found
Referências
- A grande resposta de Stephane Chazelas a Como parar o comando find após o primeiro jogo?