Skip to content
A faster way to move around (Bash 3+/Zsh)
Shell Makefile
Branch: master
Clone or download

Latest commit

Latest commit 0431104 Feb 4, 2019


Type Name Latest commit message Commit time
Failed to load latest commit information.
.editorconfig Added EditorConfig Feb 4, 2019
.travis.yml Added 1.0.0 release notes Feb 4, 2019
Makefile rename commacd.bash -> Nov 28, 2018

commacd Build Status

A faster way to move around (Bash 3+/Zsh).

commacd is NOT an autojump/z/fasd alternative nor they are mutually exclusive. Think of it as an improved cd.



curl -sSL -o ~/ && \
  echo "source ~/" >> ~/.bashrc

macOS users: make sure ~/.bashrc is sourced from ~/.bash_profile.


curl -sSL -o ~/ && \
  echo "source ~/" >> ~/.zshrc

Upgrading to the latest version

curl -sSL -o ~/


commacd exports three commands: , (for jumping forward), ,, (backward) and ,,, (backward+forward):

~$ , des
  => cd Desktop

# move through multiple directories
~$ , /u/l/ce
  => cd /usr/local/Cellar

# allow me to choose directory in case of ambiguous pattern (= multiple choices)
~$ , d
  => 1 Desktop
     : <type index of the directory to cd into>

# given two directories jdk7 and jdk8 on the Desktop, cd into jdk8 without hitting
# interactive mode (the one shown above)
~/github$ , ~/d/j*8
  => cd ~/Desktop/jdk8

# cd into directory having 'esk' somewhere in its name
~/github$ , ~/esk # in pre-0.2.0 that would be `, ~/*esk`
  => cd ~/Desktop

# go all the way up to the project root (in this case, the one that has .git in it)
~/github/lorem/src/public$ ,,
  => cd ~/github/lorem

# cd into to the first (closest) parent directory named g*
~/github/vimium/src/public$ ,, g
  => cd ~/github

# substitute jekyll with ghost
~/github/jekyll/test$ ,, jekyll ghost
  => cd ~/github/ghost/test

# jump to some other project (in this case, located in ~/github)
~/github/rook/src/public$ ,,, binlog # in pre-0.2.0 you would need to use `m*binlog`
  => cd ~/github/mysql-binlog-connector-java

As a bonus, all three aliases support <Tab> expansion (try , /u/lo<Tab>) and can be combined with other tools (e.g. ls `, /u/lo` ).

For more information, please refer to


make # lint & test


MIT License

You can’t perform that action at this time.