📅  最后修改于: 2023-12-03 15:26:01.822000             🧑  作者: Mango
在 Linux 或 macOS 等 Unix 操作系统中,使用 Shell-Bash 进行终端操作是比较常见的方式。有时候我们会在终端中切换目录,但是目录结构比较深,需要不断地输入 cd
命令才能到达目标目录。这时候,一个比较方便的方法就是收缩终端当前目录,只显示最后几层目录。
Shell-Bash 中提供了 $PS1
变量,用来控制终端显示的提示符。我们可以通过修改 $PS1
变量的值来实现收缩目录的功能。
下面是一个实现收缩目录的 Bash 函数:
function shorten_pwd() {
local pwd_len=$(echo $PWD | wc -c)
local parent_dir="/$(basename $(dirname $PWD))"
local suffix="${PWD:${#parent_dir}:${pwd_len}}"
local shortened="$(echo $parent_dir | sed 's_/_/_g')$suffix"
PS1="$shortened \$ "
}
这个函数首先获取当前目录的长度,然后计算出当前目录的上一级目录,以及当前目录去掉上一级目录部分后的后缀。最后,将上一级目录加上后缀拼接成一个新路径,并把它设置为 $PS1
变量,即可实现收缩目录的效果。
将上面的函数加入到 .bashrc
或 .bash_profile
文件中,然后执行 source .bashrc
或 source .bash_profile
命令使修改生效。
执行 shorten_pwd
命令即可实现收缩目录。如果需要还原显示完整路径,只需要执行 PS1='\h:\W \$ '
命令即可。
通过修改 $PS1
变量,我们可以实现终端目录显示的个性化定制。收缩目录是一个比较实用的方式,可以提高终端操作的效率。