# Better cd # Usage: cd [full_path|partial_path|path_initials|-] # # Examples: # ~/playground/ $ find . -type d # . # ./slides # ./slides/small # ./slides/huge # ./swings # ./swings/small # ./swings/large # ~/playground/ $ cd sl # ~/playground/slides/ $ cd # ~ $ cd p/s/h # ~/playground/slides/huge $ cd ../.. # ~/playground/ $ cd - # ~/playground/slides/huge $ cd - # ~/playground/ $ cd s/s # Warning: Multiple possible paths. Going to first path. # ~/playground/slides/small $ function cd { if [[ $# -eq 0 ]]; then builtin cd return fi if [[ $# -gt 1 ]]; then echo "too many arguments" >&2 return 1 fi # cd - if [[ $1 == '-' ]]; then builtin cd - return fi # Check for absolute path first if [[ -d $1 ]]; then builtin cd "$1" return fi # If nothing works echo "$1: No such directory." >&2 return 1 }