1. ホーム
  2. linux

[解決済み】Linuxのシェル機能「find -exec」。

2022-04-05 10:23:07

質問

を取得する方法はありますか? find シェルで定義した関数を実行させることができますか?

例えば

dosomething () {
  echo "Doing something with $1"
}
find . -exec dosomething {} \;

その結果、次のようになります。

find: dosomething: No such file or directory

を取得する方法はありますか? find 's -exec を見ることができます。 dosomething ?

解決方法は?

シェル関数の実行方法はシェルだけが知っているので、関数を実行するにはシェルを実行する必要があります。 また、作成した関数をエクスポートするには export -f そうしないと、サブシェルに継承されないからです。

export -f dosomething
find . -exec bash -c 'dosomething "$0"' {} \;