Ayuda con script para emails

Muy buenas, veréis, el jefe de una empresa cercana a la mía nos ha pedido que le hagamos un script para obtener un fichero con un listado de direcciones de correo válidas en su servidor. Concretamente el servidor es una Gentoo (un poco modificada) con Qmail.

La cosa es que las cuentas se organizan en el sistema de ficheros mediante carpetas con el nombre de dominio, y subcarpetas con el nombre de cada una de las cuentas para ese dominio, por ejemplo
raizcorreo
|-- dominio1.com
| |-- usuario1dominio1
| |-- usuario2dominio1
| +-- usuario3dominio1
|
+--dominio2.es
   |-- usuario1dominio2
   |-- usuario2dominio2
   +-- usuario3dominio2

De éste modo, el listado de direcciones válidas sería
usuario1dominio1@dominio1.com
[email]usuario2dominio1@dominio1.com[/email]
[email]usuario3dominio1@dominio1.com[/email]
[email]usuario1dominio2@dominio2.es[/email]
[email]usuario2dominio2@dominio2.es[/email]
[email]usuario3dominio2@dominio2.es[/email]


La idea es bastante sencilla, explorar la carpeta raíz para sacar nombres de dominio, para cada uno de ellos explorar las subcarpetas, y para cada una de ellas, componer una dirección de la forma "subcarpeta@carpeta\n" y volcarla a un fichero. Hasta ahí guay, el problema es que no tengo ni idea de sintaxis de bash o sh, ni cómo obtenerlos listados de carpetas.
Si me pudierais echar una mano os estaría muy agradecido.

PD: El script éste se lo hacemos como favor por ser nuestro amigo (además de estar emparentado con el jefe blablabla), no os estoy pidiendo ayuda para ganarme el sueldo con vuestro conocimiento ni nada de eso xD.
Bueno, yo el lenguaje q se usar es el python y sería algo así:
import os

filename='directorio.txt'   #el archivo donde lo queremos volcar
path='/home/gimbo'        #el directorio
fd=open(filename,'w')
for i in os.listdir(path):
    if os.path.isdir(path+os.sep+i):
        for j in os.listdir(path+os.sep+i):
            email=i+'@'+j
            print email
            fd.write(email+'\n')

fd.close()

como ves es bastante sencillo y todo es bastante comprensible.
find . -mindepth 2 -maxdepth 2 | sed -e 's-^\(\./\)\([^/]*\)/\(.*\)$-\3@\2-'


- ferdy
joder ferdy, me dejas siempre a bolos en lo que a scripts y comandos *nix se refiere, muchas truncias, voy a probar!
4 respuestas