diff --git a/.bashrc b/.bashrc index 7915189..e8896db 100644 --- a/.bashrc +++ b/.bashrc @@ -106,11 +106,24 @@ ex () alias doas="doas --" # navigation -alias ..='cd ..' -alias ...='cd ../..' -alias .3='cd ../../..' -alias .4='cd ../../../..' -alias .5='cd ../../../../..' +up () { + local d="" + local limit="$1" + + # Default to limit of 1 + if [ -z "$limit" ] || [ "$limit" -le 0 ]; then + limit=1 + fi + + for ((i=1;i<=limit;i++)); do + d="../$d" + done + + # perform cd. Show error if cd fails + if ! cd "$d"; then + echo "Couldn't go up $limit dirs."; + fi +} # vim and emacs alias vim="nvim"