Verificar arquivos [RESOLVIDO]

1. Verificar arquivos [RESOLVIDO]

Rafael
rtesser

(usa Outra)

Enviado em 29/12/2011 - 06:49h

Pessoal,

Preciso testar através de um script se um determinado diretório recebeu um ou mais arquivos durante o dia.

Para isso, fiz um script que verifica essa informação, que dependendo qual for uma ação diferente deve ser realizada.

Bom, ai é que vem o problema. Quando o diretório recebe somente um arquivo o script roda corretamente e trás o resultado esperado, agora quando o diretório recebe mais de um arquivo o IF que eu criei se perde e devolve como resposta um FALSE, mesmo os arquivos estando lá.

Segue a parte do código que eu fiz:

if [ -e *.gz ]
then
<<<<< BLOCO DE CÓDIGO PARA IF=TRUE >>>>>
else
<<<<< BLOCO DE CÓDIGO PARA IF=FALSE >>>>>
fi

A mensagem de erro retornada quando existe mais de um arquivo é:
binary operator expected

Vocês sabem como resolver isso? Preciso que o if entenda que estou apenas querendo saber se chegou um ou mais arquivos GZ no diretório.

Obrigado


  


2. MELHOR RESPOSTA

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 29/12/2011 - 10:42h

Faça assim:


#!/bin/bash

# lista os arquivos .gz do diretório e conta a quantidade de linhas retornadas
QTD=$(ls *.gz | wc -l)

if [ "${QTD:-0" -eq 1 ]; then

# coloque o código correspondente aqui

else
# coloque o código correspondente aqui
fi

Ou pode usar um case:


#!/bin/bash

# lista os arquivos .gz do diretório e conta a quantidade de linhas retornadas
QTD=$(ls *.gz | wc -l)

case "${QTD:-0}" in
1) # coloque o código correspondente aqui ;;
2) # coloque o código correspondente aqui ;;
*) echo 'nada a fazer';;
esac



Obs.: o "${QTD:-0}" diz ao shell que caso não tenha valor na variável QTD, ele use o valor 0, assim evita dar erro em comparações com valores nulos/vazios.

ABraços


3. Re: Verificar arquivos [RESOLVIDO]

Rafael
rtesser

(usa Outra)

Enviado em 30/12/2011 - 03:33h

Obrigado pela ajuda rai3mb. Problema resolvido :-)


4. Dicar perfeita

Fernando Tholl Nascimento
fernandotholl

(usa Ubuntu)

Enviado em 22/11/2012 - 14:35h

Incrível, quando pesquiso alguma dúvida sobre Linux, sempre encontro algo muito parecido por aqui.

Parabéns.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts