提问人:Sergio Bolívar 提问时间:8/15/2023 最后编辑:Sergio Bolívar 更新时间:8/24/2023 访问量:57
并行化多个子文件夹中的 bash 脚本
Parallelize bash scripts from multiple subfolders
问:
我正在尝试并行化放置在各个子文件夹中的多个 bash 文件():script.sh
├── subfolder1
│ ├── subfolder1_script.sh
├── subfolder2
│ ├── subfolder2_script.sh
我试过了:
find . -name "*_script.sh" | parallel '-type f -execdir {} '&' \;'
或
find . -name "*_script.sh" | parallel ::: -type f -execdir {} '&' \;
但是脚本不起作用。我想要一些关于如何解决这个问题的建议。
谢谢。
答:
0赞
Ivan
8/15/2023
#1
试试这样:
for script in *_script.sh; { $script & }
0赞
Ole Tange
8/24/2023
#2
find . -name "*_script.sh" | parallel
这将为每个 CPU 线程并行运行一个。例如,如果您的 CPU 有 16 个线程,它将保持 16 个作业运行,直到全部完成。*_script.sh
Ivan 的解决方案是同时并行运行所有操作。如果没有那么多文件夹,这通常没问题,但如果有 1000 个文件夹,您的计算机会过载。*_script.sh
评论
-execdir
sh
parallel
-execdir
find