wiki.mbirth.de

All you never wanted to know

View on GitHub
:new: 2008-08-05 :wavy_dash: :up: 2009-02-20

Prompt with 2 directories

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:

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

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.

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

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 %~.

Loading Google+ comments…