从linux镜像下载最新版本的文件

从linux镜像下载最新版本的文件

我的脚本的一部分要求我下载最新版本的云图像示例

http://download.rockylinux.org/pub/rocky/8/images/

目前最新的是http://download.rockylinux.org/pub/rocky/8/images/Rocky-8-GenericCloud-8.4-20210620.0.x86_64.qcow2

我如何能够从此链接使用curlwget下载最新文件。.qcow2

问题是

  1. 文件名不断变化
  2. 可能有多个 .qcow2 文件
  3. 文件必须包含 GenericCloud

答案1

sort-V选项:

  -V, --version-sort
         natural sort of (version) numbers within text

所以,你可以使用curl | grep | sort -V组合,例如:

wget "http://download.rockylinux.org/pub/rocky/8/images/$(
  curl http://download.rockylinux.org/pub/rocky/8/images/ \
  | grep -Po 'href="\K[^"]*GenericCloud[^"]' \
  | sort -V \
  | tail -n1)"

或者,如果您grep没有-P选择:

wget "http://download.rockylinux.org/pub/rocky/8/images/$(
  curl http://download.rockylinux.org/pub/rocky/8/images/ \
  | grep -o 'href="[^"]*GenericCloud[^"]' | grep -o '[^"]*\.qcow2' \
  | sort -V \
  | tail -n1)"

相关内容