dotfiles/config/zsh/functions/mkcd

9 lines
570 B
Text

# Source: https://unix.stackexchange.com/a/9124
case "$1" in
*/..|*/../) cd -- "$1" ;;
/*/../*) (cd "${1%/../*}/.." && mkdir -vp "./${1##*/../}") && cd -- "$1" ;;
/*) mkdir -vp "$1" && cd "$1" ;;
*/../*) (cd "./${1%/../*}/.." && mkdir -vp "./${1##*/../}") && cd "./$1";;
../*) (cd .. && mkdir -vp "${1#.}") && cd "$1" ;;
*) mkdir -vp "./$1" && cd "./$1";;
esac