Find emite verdadeiro mesmo não achando o arquivo como resolver
O find só apresenta o valor falso quando tem erro na formulação do comando: find asd echo $? 1 find . -name arqnaoexiste.txt echo $? 0 Podemos resolver isso assim: Como todo mundo sabe o grep apresenta um valor falso caso não localize a string echo banana | grep joka echo $? 1 arq=arqnaoexiste.txt find . -name $arq | grep -q $arq echo $? 1 O -q diz ao grep para não imprimir na tela nenhum resultado. Pode fazer de outra maneira usando o parâmetro -exec e condição para saber se find achou o arquivo ou não. find . -name 1file.txt -exec file {} \; O find vai procurar o arquivo 1file.txt e se achar vai executar o comando file. {}=Nome do arquivo achado pelo find. \; Está escapado para o shell não interpretar. Para o parâmetro -exec ; tem significado que já foi definido o comando que quer ou seja para terminar o -exec. find_file=$(find . -name $1 -exec file {} \;) [ -z "$find_file" ] && echo File not found || echo File found $find_file -z é para saber se o valor