se recursivamente encontrar ext, então, senão no unix

se recursivamente encontrar ext, então, senão no unix

Isso é o que eu normalmente uso. Mas preciso encontrar recursivamente uma extensão com, then e else. O problema com este é que não é recursivo.

if ls $HOME/Downloads/*.ext >/dev/null 2>&1
then
    :
else
    :
fi

Responder1

Use findem vez de ls. Se você tiver o GNU find, poderá usá-lo -quitpara sair após a primeira partida. Depois é só verificar se retornou algum resultado.

O script seria algo como

if [ -n "$(find $HOME/Downloads -name '*.ext' -print -quit | head -n 1)" ]
then
    :
else
    :
fi

Use -iname em vez de -name para fazer uma pesquisa sem distinção entre maiúsculas e minúsculas.

informação relacionada