如何显示 $PATH 中列出的所有目录

如何显示 $PATH 中列出的所有目录

如何显示 中列出的所有目录$PATH

答案1

printf '%s' "$PATH" | tr ':' '\n'

使用该tr命令,因为暗示在里面问题的原始版本建议使用它。

答案2

假设(并且还假设您知道如何使用或bash显示 shell 变量的值)echoprintf

printf "${PATH//:/\\n}"

这利用了 shell 内的参数扩展。扩展本身就是${parameter/pattern/string}参数PATH/:模式和\\n(替换)字符串。模式中的前导指示应该对所有出现的inside/进行替换。:PATH

答案3

如果您的意思是列出它们的内容,那么在 POSIX shell 中,您可以执行以下操作:

(IFS=:; set -o noglob; ls -Hl -- $PATH)

假设$PATH没有空(对于当前目录)组件。

有了fishshell,那就是:

ls -Hl -- $PATH

(将环境变量fish转换PATH为 shell 数组变量,其中空组件更改为.)。

(t)csh

ls -Hl -- $path:q

$PATH映射的$path那里的数组,并将空字符串转换为.)。

zsh,也$PATH映射到一个数组,但空组件没有更改为,所以你需要类似的东西:$path.

ls -Hl -- "${path[@]/#%/.}"

手动进行转换。

如果您想要的只是每行输出这些路径,而不是列出相应目录的内容,那么只需替换ls -Hl --printf '%s\n'.

答案4

这里是:

echo $PATH | sed 's/:/\n/g'

编辑:如果你想显示内容

ls `echo $PATH | sed 's/:/\n/g'`

相关内容