📜  收缩终端当前目录 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:26:01.822000             🧑  作者: Mango

收缩终端当前目录 - Shell-Bash

在 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 .bashrcsource .bash_profile 命令使修改生效。

执行 shorten_pwd 命令即可实现收缩目录。如果需要还原显示完整路径,只需要执行 PS1='\h:\W \$ ' 命令即可。

结论

通过修改 $PS1 变量,我们可以实现终端目录显示的个性化定制。收缩目录是一个比较实用的方式,可以提高终端操作的效率。