For loop for files in multiple folders - bash shel

2020-03-01 18:03发布

I need to have files from many directories in a for loop. As for now, I have the following code:

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

In each loop I'm doing the same thing. Is there a way to get files from multiple folders?

Thanks in advance

2条回答
冷血范
2楼-- · 2020-03-01 18:22

You can give multiple "words" to for, so the simplest answer is:

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

There are then various tricks to reduce the amount of typing; namely globbing and brace expansion.

# 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}
查看更多
地球回转人心会变
3楼-- · 2020-03-01 18:35

Try for f in ./{test1,test2,test3}/* or for f in ./*/* depending on what you want.

查看更多
登录 后发表回答