12 lines
418 B
Bash
Executable File
12 lines
418 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euf -o pipefail
|
|
|
|
case "$1" in
|
|
*/..|*/../) cd -- "$1";; # that doesn't make any sense unless the directory already exists
|
|
/*/../*) (cd "${1%/../*}/.." && mkdir -p "./${1##*/../}") && cd -- "$1";;
|
|
/*) mkdir -p "$1" && cd "$1";;
|
|
*/../*) (cd "./${1%/../*}/.." && mkdir -p "./${1##*/../}") && cd "./$1";;
|
|
../*) (cd .. && mkdir -p "${1#.}") && cd "$1";;
|
|
*) mkdir -p "./$1" && cd "./$1";;
|
|
esac
|