使用find -exec linux命令运行二进制文件

时间:2015-03-02 23:58:34

标签: linux bash terminal find

奇怪的问题我正在使用Linux find命令并且可以成功找到一个脚本文件,然后我想在不产生新shell的情况下运行它可能吗?

示例:

$ find ~ iname script.sh -exec ls -s {} -exec bash {} +

这成功运行了脚本,但我不想生成新的shell,是否可以只运行脚本?

1 个答案:

答案 0 :(得分:2)

你的意思是你想要找到你在当前shell中找到的脚本吗?如果是这样的话:

while IFS= read -r -d '' scriptname; do
  printf '%s\n' "$scriptname" >&2
  source "$scriptname"
done < <(find ~ -iname script.sh -print0)

如果您只是想在将子程序作为子进程运行时避免涉及多个解释器:

find ~ -iname script.sh -exec ls -sh '{}' ';' -exec '{}' ';'

...引用{}对于bash来说并不是必需的,但如果可以在zsh中使用某个代码,那么它就是习惯。