# CD (back) to directory.
# Usage: cdd <DIR>
cdd()
{
  local target="${1}"
  local array
  local result
  IFS='/' read -r -a array <<< "${PWD}"
  array=("${array[@]:1}")

  # Make search case-insensitive.
  shopt -s nocasematch

  # Find desired dir.
  # for dir in "${array[@]}"; do
  #   result="${result}/${dir}"
  #   [[ "${dir}" =~ "${target}" ]] && break
  # done

  local found=1
  for (( idx=${#array[@]}-2 ; idx>=0 ; idx-- )); do
    dir="${array[idx]}"
    [[ "${dir}" =~ "${target}" ]] && found=0
    [[ ${found} = 0 ]] && result="/${dir}${result}"
  done

  # Clean-up???
  shopt -u nocasematch

  # Go there!
  if [[ "${result}" != "" ]]; then
    echo "${result}"
    cd "${result}"
  else
    return 1
  fi
}