Используйте параметр командной строки -np|--no-parent
и -l|--level
wget
.
Никогда не поднимайтесь в родительский каталог при рекурсивном извлечении.Это полезный параметр, поскольку он гарантирует, что будут загружены только файлы ниже определенной иерархии.
Укажите максимальный уровень глубины рекурсии.Если вы хотите загрузить все файлы из одного каталога, используйте '-l 1', чтобы убедиться, что глубина рекурсии никогда не превышает единицы.
Таким образом, команда должна выглядеть следующим образом wget -A zip -np -r -l 1 -c -e robots=off --reject "index.html*" ${repo_url}/${i}/
.--reject "index.html*"
бесполезен для меня.И вы должны исправить repo_url
в вашем скрипте на "http://download.virtualbox.org/virtualbox"
без завершающего слеша.Таким образом, вы получаете
wget -A zip -np -r -l 1 -c -e robots=off ${repo_url}/${i}/
В результате получается
mrepo/download.virtualbox.org/virtualbox/5.2.20/VirtualBoxSDK-5.2.20-125813.zip
mrepo/download.virtualbox.org/virtualbox/5.2.22/VirtualBoxSDK-5.2.22-126460.zip
mrepo/download.virtualbox.org/virtualbox/6.0.0/VirtualBoxSDK-6.0.0-127566.zip
Для краткости, короткая версия скрипта выглядит следующим образом:
#!/usr/bin/env bash
repo_url="https://download.virtualbox.org/virtualbox"
repo_download=('5.2.20' '5.2.22' '6.0.0')
for i in "${repo_download[@]}"; do
wget -A zip -np -r -l 1 -c -e robots=off ${repo_url}/${i}/
done