如何在 bash 提示中显示真实的当前目录,而不是符号链接

Wes*_*ler 3 bash command-line

我使用 Ubuntu 附带的 PS1 的默认值:

\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$
Run Code Online (Sandbox Code Playgroud)

这在 90% 的情况下都可以。但是,当我cd到一个符号链接“目录”时,符号链接的名称,而不是使用的值pwd -P

如何更改 \w 以获取真实的当前目录?仍然以\w或呈现的格式显示\W

hek*_*mgl 9

使用$(pwd -P)代替\w。像这样:

PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]$(pwd -P)\[\033[00m\]$ '
Run Code Online (Sandbox Code Playgroud)

  • @WesMiller 使用单引号,以便在您的提示中实际扩展“PS1”之前不会评估命令替换。否则,正如您所观察到的,您对提示进行硬编码以直接包含第一次运行命令的位置。 (2认同)