--- layout: post title: Jumping around in bash shell date: 2020-03-17 12:54 author: rick categories: --- I jump around a lot in the terminal between different projects and activities. To avoid endless typing I have created aliases which allows me to quickly perform this task. By adding the following entries to your `.bashrc` you will give access to the powerfull tools of `jcd` `scd` `lcd`. First and foremost goto a directory you would like to earmark. Type `scd ` and your entry will be stored. To go back to this directory type `jcd ` and you arrived at your destination. Tab completion also works to save typing some more. ```bash function jcd { cd "$(grep "${1:-blank} /" ~/.jcd | cut -d' ' -f 2-)" } function scd { ( grep -v "^${1:-blank} /" ~/.jcd; echo ${1:-blank} `pwd` ) > ~/.jcd.new mv ~/.jcd.new ~/.jcd } function lcd { cat ~/.jcd | sed 's/ /\t = /' } function _listcd { COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" opts=$(awk '{print $1}' ~/.jcd | grep "^$2") COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) return 0 } complete -F _listcd jcd complete -F _listcd scd ```