Testar se existe arquivo

1. Testar se existe arquivo

Claudemir Santos
tech14107

(usa Red Hat)

Enviado em 10/03/2009 - 18:57h

Ola galera.
Tudo bem???
Preciso de um help.
To fazendo um script que irá replicar alguns dados de um banco para outro servidor.
Ele ja esta funcionando, mas quero dar um floriada nele.

O seguinte:
Ele pega os arquivos que estao em um determinado diretório e da um scp para outro sevidor.
Todos os arquivos tem o seguinte formato:

xxxxxxxxx.ai.yyyymmddhh

onde
xxxxxx é o nome (pede váriar de 1 ate 11 caracteres)
ai - sempre fixo ou seja sempre vai existir esse ai
o resto é data para garantir a nao repetiçao

bom preciso testar a existencia de qualquer arquivo que exista no diretório que tenha o ai, estou fazendo assim

export cont_ai=`ls -l $ailog/*ai* |wc -l > /dev/null`
if [ "$cont_ai" = "0" ]
then
echo "Nao existe ai"
exit 4
else
echo "Existe ai"
transfere
fi
só que quando nao existe arquivo ele da um errr, como poderia fazer sem ter que usar o ls -l

grato


  


2. Re: Testar se existe arquivo

Elder Marco
eldermarco

(usa Fedora)

Enviado em 10/03/2009 - 21:00h

Mas porque você não usa a opção -e do comando test?








if [ -e $arquivo ]; then

echo "Arquivo existe"
else
echo "Arquivo não existe"
fi

Aí seria apenas adaptar para a sua situação e tal..


3. Re: Testar se existe arquivo

Claudemir Santos
tech14107

(usa Red Hat)

Enviado em 10/03/2009 - 21:37h

O problema é que o nome pode variar conforme a data e hora, entao nao sei como saber o nome do arquivo completo.


4. Re: Testar se existe arquivo

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 10/03/2009 - 22:28h

Se for problema d aparecer o erro, coloque da seguinte maneira essa linha:

cont_ai=`ls -l $ailog/*ai* |wc -l 2> /dev/null

Assim as msgs d erro não aparecerão. Era isso q vc queria?


5. Re: Testar se existe arquivo

Bruno Corrêa
bcorrea2

(usa Debian)

Enviado em 11/03/2009 - 18:52h

Você não sabe a extenção do arquivo?

$arquivo = *.txt

if [ -e $arquivo ]; then
echo "Arquivo existe"
else
echo "Arquivo não existe"
fi

Poderia usar algo do tipo!
Desta maneira identificaria qualquer aquivo .txt, daí só mudar a extenção...



6. Re: Testar se existe arquivo

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 12/03/2009 - 16:54h

Bom, abaixo segue uma solução bem simplista, mas acho que atende bem:

if [ -f *.ai.* ]; then
echo "Arquivo existe"
else
echo "Arquivo não existe"
fi

se precisar controlar a validade do nome, dá um toque.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts