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.