如何修剪 CWD,如命令提示符所示

如何修剪 CWD,如命令提示符所示

要知道控制台中我的 CWD 是什么,我将以下内容添加到 ~/.bash_profile 中:

export PS1='$(pwd)$ '

因此,pwd结果显示在$符号之前。这个真好。

但是当我进入一个长名称的目录时:/var/www/vhosts/beta.sitename.co.uk/httpdocs/sites/beta.sitename.co.uk/modules/bundles

在命令提示符中我看到:

.co.uk/modules/bundles$ sitename.co.uk/httpdocs/sites/beta.sitename.

这使得 shell 几乎无法使用。是否可以修剪它,仅保留最后一部分或目录名称?比如说,30 个字符。

pwd或者,也许更好的主意是在每个命令之后打印cd,这样我就可以知道我在哪里?这可以使用别名来完成。

答案1

在 my 中.bashrc,我的 PS1 配置为显示当前工作目录的最后一个组件。这可以使用\W(PS1 允许一些特殊序列和变量)来完成。在你的情况下,那就是:

$ export PS1='\W$'

更多这些序列可以在man bash、 at Prompting看这里。您也可以使用\w完整路径,但$HOME缩写为~(这会缩短大部分路径)。现在,如果您确实想设置字符限制,您可以使用...

$ export PS1='$(pwd | tail -c30)$' # Limited to 30 characters
$ export PS1='...$(pwd | tail -c30)$'

...或者有一点羞涩:

$ export PS1='${PWD: -30}$'
$ export PS1='${PWD:(-30)}$'
$ export PS1='...${PWD: -30}$'
$ export PS1='...${PWD:(-30)}$'

相关内容