export MARKPATH=$HOME/.marks

function mark {
  mkdir -p "$MARKPATH"; ln -s "$PWD" "$MARKPATH/$1"
}

function unmark {
    rm -i "$MARKPATH/"$(basename $PWD)""
}

function marks {
    for f in "$MARKPATH"/*; do
        printf '%s → %s\n' "$(basename "$f")" "$(readlink "$f")"
    done
}

function j {
  cd -P "$MARKPATH/$1" 2>/dev/null || printf '%s\n' "error: no such mark $1"
}