有没有办法find执行我在 shell 中定义的函数?
find
例如:
dosomething () { echo "Doing something with $1" } find . -exec dosomething {} \;
结果是:
find: dosomething: No such file or directory
有没有办法让find‘s-exec看到dosomething?
-exec
dosomething
由于只有 shell 知道如何运行 shell 函数,因此您必须运行 shell 才能运行函数。您还需要用 标记导出函数export -f,否则子shell 不会继承它们:
export -f
export -f dosomething find . -exec bash -c 'dosomething "$0"' {} \;