フォルダ内のすべてのファイルに対してコマンドを実行する方法

フォルダ内のすべてのファイルに対してコマンドを実行する方法

rubyたとえば、このツリーがあり、そのフォルダ内のすべてのスクリプトを実行したいとします。アーカイブをどのように渡すことができますか?1行コマンド

./
../
rb-script/
    sample1.rb
    sample2.rb

ベストアンサー1

(シェルによる)

for file in rb-script/*.rb; do ruby "$file"; done

これで問題が解決します。または(シェルとは関係ないと思います)

find rb-script -type f -exec ruby "{}" \;

find;状況に応じてより具体的に使用できます。

find rb-script -maxdepth 1 -type f -name '*.rb' -exec ruby "{}" \;

一般的に言えば、複数のファイルを許可すると(ファイルの数がシェルのコマンドライン引数の最大値より少ない場合)、機能します。command <glob-pattern>しかし、それは疑問です。 (しかし、あなたが望むことをするためにラッパースクリプトを書くことができます。)commandrubyruby-wrapper rb-script/*.rb

おすすめ記事