The find
command accepts and -exec
argument, allowing you to pass matching files into an arbitrary command.
It's pretty useful, but sometimes you want to be able to have it invoke a custom function, which it can't do without a little bit of tweaking
This snippet details how to have find
invoke a custom shell function against each matching result, the example uses BASH but the same should be possible with ZSH, DASH, ASH, KSH etc
# Define your function
function doSomething(){
file=${1#"./"}
do_something_to $file
}
# Export the function
# so that it's available to find
export -f doSomething
# find will need a shell to execute the function
# here we've used bash, but invoke whichever shell is needed
# for your function
find ./ -type f -mtime +14 -exec bash -c 'doSomething {}' \;