我想运行:
./my_script.py a_file &
在当前文件夹中以.my_format
结尾的所有文件上,所以我这样做:
find . -type f -name "*.my_format" -exec ./my_script {} & ;
但它不起作用。我应该如何在-exec
参数中包含&
?
试试这个:
$ find . -type f -name "*.my_format" -exec sh -c './my_script {} &' ;
尝试失败的最可能原因是find使用exec(3)
系列标准c库调用中的一个执行命令,该调用不理解作业控制,即&
符号。shell确实理解"在后台运行此命令",因此-exec sh ...
调用
试试这个find命令:
find . -type f -name "*.my_format" -exec bash -c './my_script "$1" &' - '{}' ;