小编典典

'find -exec' Linux 中的一个 shell 函数

all

有没有办法find执行我在 shell 中定义的函数?

例如:

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

结果是:

find: dosomething: No such file or directory

有没有办法让find‘s-exec看到dosomething


阅读 69

收藏
2022-06-02

共1个答案

小编典典

由于只有 shell 知道如何运行 shell 函数,因此您必须运行 shell 才能运行函数。您还需要用 标记导出函数export -f,否则子shell 不会继承它们:

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