获取 HTML 目录列表中的文件列表

获取 HTML 目录列表中的文件列表

我可以获取所有文件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

相关内容