Pet*_*uza 4 bash symbolic-link command-line prompt ps1
我目前有,PS1='\W'
但是在符号链接目录中时,提示显示符号链接名称,如何让 PS1 显示原始目录名称?
在 Linux 上,您可以使用以下命令:
export PS1='$( readlink -f . )'
Run Code Online (Sandbox Code Playgroud)
例子:
$ export PS1='$( readlink -f . ) \$ '
/home/danielbeck $ ln -s /etc foo
/home/danielbeck $ cd foo
/etc $ _
Run Code Online (Sandbox Code Playgroud)
请注意,您仍然需要/home/danielbeck/foo
处理其他所有内容,例如使用 解析父目录cd ..
,因此,继续示例:
/etc $ cd ..
/home/danielbeck $ _
Run Code Online (Sandbox Code Playgroud)
另一种选择可能是替换cd
为进入规范目录而不是符号链接的函数,例如:
function cd {
if [[ $# -ne 1 ]] ; then
builtin cd "$@"
elif [[ "$1" = "-" ]] ; then
builtin cd -
else
builtin cd "$( readlink -f "$1" )"
fi
}
Run Code Online (Sandbox Code Playgroud)
这也可能适用于任何cd
参数,甚至支持CDPATH
:
function cd {
builtin cd "$@"
builtin cd "$( readlink -f . )"
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
703 次 |
最近记录: |