サブディレクトリでもコマンドを実行してください。

サブディレクトリでもコマンドを実行してください。

私は、次のパターンに一致するすべてのサブディレクトリでコマンドを実行する方法を知っています(実行したいとしますgh repo sync)。

for d in ./*/ ; do (cd "$d" && gh repo sync) ; done

各ディレクトリのサブシェルからコマンドを実行します。続けて

私が望むのは、すべてのコマンドを並列に実行しますが、すべてが完了するまでデフォルトのスクリプトで待つことです。

Ubuntu 22.04を使用しています。それは可能ですか?

ベストアンサー1

GNU Parallelはこれを非常によく行います。使ってきたこの構造長期毎日:

parallel --wd '{}' 'gh repo sync' ::: ./*/.git/..

私のシステムで同様のテストを行いました。

$ parallel --wd '{}' 'pwd' ::: ~/my\ projects/*/.git/..
/home/username/my projects/acard
/home/username/my projects/acp01
[125 more]

おすすめ記事