[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: BASH listo directorios y si es vacio...




----- Original Message ----- From: "Manolet Gmail" <manolet@gmail.com>
To: "Lista Debian-Español" <debian-user-spanish@lists.debian.org>
Sent: Monday, July 09, 2007 5:36 AM
Subject: BASH listo directorios y si es vacio...


hola amigos! tengo una inquietud, con un script quiero listar todos
los archivos xml en una carpeta para trabajar con ellos... pero quiero
que si no encuentra archivos me vote un aviso. tengo esto...

for F in *.xml; do
....
done

el problema esta en que si no existe ningun archivo xml va a intentar
abrir un archivo llamado *.xml, que obviamente no existe....

intente con esto:

for F in *.xml; do
if [ "$F" = "*.xml" ] ; then
echo "no hay archivos en la carpeta
fi
done

pero me mando un error diciendo que no existe el archivo *.xml

luego intente con esto..

if [ !"$F"]

prueba con:
if [ -f "$F" ]



tampoco...
alguna idea?


prueba el find, da mejores resultados:

for F in `find "/ruta/hacia/los/archivos" -type f -name "*.xml"`; do

En el man del find podrás encontrar todas sus posibilidades, que
no son pocas. Además si tienes más de 4000 nosecuantos archivos (no
recuerdo la cifra), el ls te da un error diciendo que la lista de
argumentos es demasiado grande. Si al find le pasas como ruta a buscar
un directorio (sin asteriscos), resuelves este problema.

Un saludo.

---------------------------------------------
Arnau Carrasco - http://www.arnaucarrasco.com
---------------------------------------------



Reply to: