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