Bom dia Alexandre. Acredito não ser possível fazer o teste condicional da forma que você está querendo. Pois o "*" (asterisco) está colocando todos os arquivos existentes como argumentos para o teste condicional, causando assim um erro de sintaxe.
Uma forma simples que resolveria o seu problema é: if $(ls /emails/*-teste3.com.br.conf 1>/dev/null 2>&1) ; then echo existe; else echo nao; fi Assim você testaria o valor de retorno do comando "ls", que retornaria um valor falso caso não encontrasse qualquer arquivo com a expressão sugerida. Obs: o valor de retorno de qualquer comando utilizado no shell é armazenado na variável "$?". Logo, este valor pode ser exibido com o comando "echo $?". Felipe Rodrigues Maia felipe_rm...@yahoo.com.br --- Em shell-script@yahoogrupos.com.br, Alexandre Gorges <algor...@...> escreveu > > Bom dia Lista, > > Estou com um problema no if. > Montei um if assim: > > if [ -f /emails/*-teste3.com.br.conf ] ; then echo existe; else echo nao; fi > > Se existe apenas um arquivo no diretório funciona. Quando existe mais > arquivos da erro de too many arguments. > Dentro do diretório existe arquivos nessa forma > > alo-teste3.com.br.conf > asa2-teste3.com.br.conf > edson-teste3.com.br.conf > teste333-teste3.com.br.conf > > Como posso fazer o if tratar se tiver mais de um arquivo? > > > []'s > Alexandre Gorges > http://www.google.com.br/profiles/algorges > MSN/Gtalk/iCHAT/Skype/Jabber: algor...@... > ICQ: 2031408 > > > > > > [As partes desta mensagem que não continham texto foram removidas] >