Попробуйте это,
cdd(){
depth=$(pwd | tr -dc '/' | wc -c)
for ((d=0;d<=depth;d++)); do
[ $d -eq 0 ] && search_dir="." || search_dir=$(printf '../%.0s' $(seq 1 $d))
res=( )
while IFS= read -r -d '' item; do
res+=( "$item" )
done < <(find $search_dir -mindepth 1 -maxdepth 1 -type d -name "$1" -print0)
if [ ${#res[@]} -eq 0 ]; then
continue
elif [ ${#res[@]} -eq 1 ]; then
t="$res"
elif [ ${#res[@]} -gt 1 ]; then
select t in "${res[@]}"; do
break
done
fi
echo "$t"
cd "$t" && return || { echo "Unknown Error"; return; }
done
echo "Not found"
}
Для каждого цикла он будет искать еще одну папку вверх по дереву, пока не будет достигнута $depth
, что эквивалентно корневой папке /
.
Использование:cdd targetname
Пример:
$ cdd home
../../../home
Если найдено несколько каталогов, появится меню select
.
$ cdd "D*"
1)../Documents
2)../Downloads
3)../Desktop
#? 2
../Downloads
Это выглядит как довольно типичный случай ошибки конфигурации на сервере репозитория.
$ nslookup repo.mysql.com
[...]
Non-authoritative answer:
repo.mysql.com canonical name = repo.mysql.com.edgekey.net.
repo.mysql.com.edgekey.net canonical name = e7528.d.akamaiedge.net.
Name: e7528.d.akamaiedge.net
Address: 23.43.108.232
$ nslookup 23.57.81.191
191.81.57.23.in-addr.arpa name = a23-57-81-191.deploy.static.akamaitechnologies.com.
Похоже, что repo.mysql.com
обслуживается сетью доставки контента Akamai, поэтому DNS-запросы для него в разных местах и в разное время будут получать разные IP-адреса в качестве ответа, поскольку Akamai пытается предоставить контент из ближайших доступных сервер, который имеет возможность предоставить его.
Однако в вашем случае сервер Akamai, на который был направлен ваш запрос, оказался неисправным. Возможно, ему разрешили отвечать на запросы клиентов, когда он еще не закончил зеркалирование контента, или, возможно, что-то еще пошло не так.
Вы можете проверить страницу состояния служб Akamai и, если проблема неизвестна там, рассмотрите возможность обращения в службу технической поддержки Akamai , чтобы сообщить о проблеме.