2011-05-25 36 views
6

Necesito tener archivos de muchos directorios en un bucle for. Por el momento, tengo el siguiente código:Para bucle para archivos en varias carpetas - shell bash

for f in ./test1/*; 
... 
for f in ./test2/*; 
... 
for f in ./test3/*; 
... 

En cada bucle que estoy haciendo lo mismo. ¿Hay alguna manera de obtener archivos de varias carpetas?

Gracias de antemano

Respuesta

12

Trate for f in ./{test1,test2,test3}/* o for f in ./*/* dependiendo de lo que desee.

+0

Gracias, esto funcionó para mí! – fanjabi

+0

¡Es un placer! ¿Puedes marcar esta respuesta como "aceptada"? Aclamaciones. – evgeny

5

Usted puede dar múltiples "palabras" a for, por lo que la respuesta más simple es:

for f in ./test1 ./test2 ./test3; do 
    ... 
done 

Hay, pues varios trucos para reducir la cantidad de escritura; a saber, expansión globbing y corsé.

# the shell searchs for matching filenames 
for f in ./test?; do 
... 
# the brace syntax expands with each given string 
for f in ./test{1,2,3}; do 
... 
# same thing but using integer sequences 
for f in ./test{1..3} 
Cuestiones relacionadas