POSIX 命令“which --all”,不仅要首先列出 PATH 上的所有内容?

POSIX 命令“which --all”,不仅要首先列出 PATH 上的所有内容?

许多 shell 都有一个--all标志which

--all, -a 打印 PATH 中的所有匹配项,而不仅仅是第一个

which不符合 POSIX 标准;shellcheck向我们指出command -v.

command但是没有类似的标志--all

答案1

type -a -p提供此功能。

-a指示它提供所有内容,而不仅仅是第一个。

-p仅表示打印路径(否则您将获得<executable> is路径前缀)并忽略非文件结果,例如别名。 (或者-P跟随别名并强制进行 PATH 搜索。)

相关内容