我需要一个bash命令来顺序访问(cd
)当前目录中的所有文件夹,并在每个文件夹中执行命令。
我的问题是,我有大约100个文件夹,其中包含类似的Python脚本(全部名为example.py
),我想按顺序执行所有这些文件夹。
我想到这样的事情:
for folder in directory:
python example.py
感谢您的关注。
答案 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 \;