Files

23 lines
665 B
Bash
Raw Permalink Normal View History

# cd with zoxide fallback, else builtin cd.
cd() {
local rc target
if [ $# -eq 0 ]; then
builtin cd "$HOME"
elif [ "$1" = - ]; then
builtin cd -
elif builtin cd "$1" 2>/dev/null; then
: # exact path resolved, nothing else to do
elif command -v zoxide >/dev/null 2>&1; then
target=$(zoxide query -- "$1" 2>/dev/null)
if [ -n "$target" ]; then
builtin cd "$target"
else
builtin cd "$1" # let builtin cd surface the real error
fi
else
builtin cd "$1"
fi
rc=$?
command -v zoxide >/dev/null 2>&1 && zoxide add "$PWD" 2>/dev/null
return $rc
}