我想运行:庆典:-exec的find命令和
./my_script.py a_file &
...在与.my_format
结束当前文件夹中的所有文件,所以我做的:
find . -type f -name "*.my_format" -exec ./my_script {} & \;
但它不起作用。我应该如何在-exec
参数中包含&
?
我想运行:庆典:-exec的find命令和
./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 {} &' \;
的最可能原因,你的尝试没有成功是因为找到执行使用exec(3)
系列标准之一的命令c库调用不了解作业控制 - &
符号。 shell确实懂得“在后台运行这个命令”,因此-exec sh ...
调用
噢,谢谢。所以'sh'是所有linux机器上的基本shell,对吧? –
最近的linux发行版symlinks/bin/sh到符合posix-sh标准的shell。 – holygeek
如果我们为每次执行产生一个新的shell,我们为什么还需要在后台添加执行的命令 ? –
试试这个find命令:
find . -type f -name "*.my_format" -exec bash -c './my_script "$1" &' - '{}' \;
可能重复[可以查找命令的“exec”功能在后台启动程序吗?](http://stackoverflow.com/questions/853451/can-the-find-commands-exec-feature-start-a-program-in-the-the-background) – eran
一年后有指出它的意义吗? –
面对这个问题时,我遇到了这个问题,而且这绝对不是一个坏问题。在这一点上,提到它是重复的是一种通知未来读者其他答案可用的方式,就是这样。 – eran