an_*
入力ファイルと実行可能ファイルを含むサブフォルダがたくさんありますrun
。サブフォルダで一度実行されるコマンドラインはです./run <an_*
。
私が望むのは、ファイルを含むすべてのサブフォルダを見つけてan_*
入力として実行することです。最良の選択は次のとおりです。しかし、それはうまくいきません。run
an_*
find -name an_* -execdir ./run <'{}' \;
答え1
findコマンドラインから入力リダイレクトを削除すると、<
シェルは次の入力をリダイレクトしようとします。探す。必要なのは、findが実行するコマンドでリダイレクトが発生することです。ただし、find
リダイレクトの実行方法がわからないため、指定したコマンドを解析するためにシェルを実行するように明示的に要求する必要があります。このような:
find -name "an_*" -execdir sh -c "./run < {}" \;