bash - 按顺序访问所有文件夹并运行命令

时间:2015-08-02 12:15:03

标签: bash

我需要一个bash命令来顺序访问(cd)当前目录中的所有文件夹,并在每个文件夹中执行命令。

我的问题是,我有大约100个文件夹,其中包含类似的Python脚本(全部名为example.py),我想按顺序执行所有这些文件夹。

我想到这样的事情:

   for folder in directory:
       python example.py

感谢您的关注。

2 个答案:

答案 0 :(得分:3)

for folder in */; do
    ( cd "$folder" && python example.py )
done

*/中的尾部斜杠确保我们只匹配目录名称。我们使用( )来启动子shell,因为cd仅影响当前的shell,因此我们不必在父shell中退出cd

答案 1 :(得分:0)

这些类型的任务通常由find处理,例如在你的情况下:

find /path/to/top/dir -exec python example.py \;