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

Running a binary using find -exec linux command

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

示例:

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

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

您的意思是要将您找到的脚本来源到您当前的 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 使用,这是一种习惯。