
Я могу получить все файлы насайт патчей bashзагрузив их в последовательности:
SEQ=$(seq -f "%03g" 1 30)
for i in $SEQ; do
wget http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$i;
done
Но тогда мне нужно будет узнать максимальное число.
Есть ли возможность просто получить листинг и извлечь все файлы исправлений для загрузки?
решение1
Вы можете использовать wget
рекурсивную загрузку:
wget -nc -nd -nH -np -r -R '*.*' http://ftp.gnu.org/gnu/bash/bash-4.3-patches/
Объяснение:
-nc
: no-clobber (не перезаписывать существующие файлы), возможно, не нужно.-nd
: Не создавайте иерархию каталогов.-nH
: Не создавайте каталог на основе имени хоста. Иначе вы обнаружите, что все загружено в каталог с именемftp.gnu.org
.-np
: Никогда не подниматься в родительский каталог.-r
: Рекурсивная загрузка.-R '*.*'
: Отклонить все, что содержит.
в имени файла (пропускает такие вещи, какindex.html
и т. д.). Также можно использовать список разрешенных файлов.Файл загружен, но удален.
решение2
for i in $(seq -f "%03g" 1 999); do
wget http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$i
if [[ $? -ne "0" ]]; then
MAX=$(expr $i - 1)
break;
fi
done
echo $MAX files downloaded