1
0
mirror of https://github.com/mbirth/wiki.git synced 2024-09-20 06:33:24 +01:00
wiki.mbirth.de/know-how/software/linux/_posts/2009-02-20-prompt-with-2-dirs.md

1.4 KiB

created layout layout_old redirect_to tags title toc updated
2008-08-05 17:48:29 +0200 redirect default https://blog.mbirth.de/archives/2008/08/05/prompt-with-2-directories.html
know-how
software
linux
shell
Prompt with 2 directories false 2009-02-20 00:32:43 +0100

bash

To only show the last 2 directories in prompt, there are two scripts at the Muffin Research Labs. The best one would be this:

{% highlight bash %} function PWD { tmp=${PWD%//}; [ ${#tmp} -gt 0 -a "$tmp" != "$PWD" ] && echo <${PWD:${#tmp}+1} || echo $PWD; } {% endhighlight %}

Add this to .bash_profile and replace \w by $(PWD) (note the parents!) in your PS1 line in that file.

A more comfort version which replaces the home directory by a tilde, is the following. I changed the function name to PWD2 to highlight the difference to the normal PWD variable.

{% highlight bash %} function PWD2 { xpwd=${PWD/$HOME/"~"}; tmp=${xpwd%//}; [ ${#tmp} -gt 0 -a "$tmp" != "$xpwd" ] && echo «${xpwd:${#tmp}+1} || echo $xpwd; } {% endhighlight %}

zsh

The zsh has this feature built-in. Use this to show only 2 parts of the PWD:

%3(~.«.)%2~

This says: If %~ (the prompt incl. replacements such as ~ for homedir) has 3 or more parts, show «. After that show 2 parts of %~.