我可以获取所有文件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 '*.*'
:拒绝.
文件名中带有 a 的所有内容(跳过诸如此类的内容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