小编典典

在Linux中找到-exec一个shell函数?

linux

有没有办法find执行我在Shell中定义的功能?例如:

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

结果是:

find: dosomething: No such file or directory

有没有办法让find-execdosomething


阅读 251

收藏
2020-06-02

共1个答案

小编典典

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

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