1

I am currently displaying the directory path and the git branch using PS1:

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "

which is prompting :

john@myMac /Volumes/.../.../.../MyProject (master) $

but as my full path ( displayed with \w\[\033[33m\] is quite long, I would like to display only the filename...

john@myMac MyProject (master) $

there is no such option in PS1... Is it possible ?

Thanks for feedback

Joaquin
  • 2,013
  • 3
  • 14
  • 26

2 Answers2

1

You can use \W instead of \w:

export PS1="\u@\h \[\033[32m\]\W\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "

As per man bash:

\w     the  current working directory, with $HOME abbreviated with a tilde 
       (uses the value of the PROMPT_DIRTRIM variable)
\W     the basename of the current working directory, with $HOME abbreviated with a tilde
anubhava
  • 761,203
  • 64
  • 569
  • 643
0

Cut the $PWD:

export PS1="\u@\h \[\033[32m\]${PWD##*/}\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
Ipor Sircer
  • 3,069
  • 3
  • 10
  • 15