问题
I want to run:
./my_script.py a_file &
... on all files in the current folder that end with .my_format, so I do:
find . -type f -name "*.my_format" -exec ./my_script {} & \;
but it doesn't work. How should I include & in the -exec parameter?
回答1:
Try this:
$ find . -type f -name "*.my_format" -exec sh -c './my_script {} &' \;
The mostly likely reason your attempt didn't work is because find executes the command using one of the exec(3) family of standard c library calls which don't understand job control - the & symbol. The shell does understand the "run this command in the background" hence the -exec sh ... invocation
回答2:
Try this find command:
find . -type f -name "*.my_format" -exec bash -c './my_script "$1" &' - '{}' \;
来源:https://stackoverflow.com/questions/20146676/bash-exec-in-find-command-and