简体   繁体   中英

Downloading most recent file using curl

I need to download most recent file based on the file creation time from the remote site using curl. How can I achieve it?

These are files in remote site

  user-producer-info-etl-2.0.0-20221213.111513-53-exec.jar
  user-producer-info-etl-2.0.0-20221212.111513-53-exec.jar
  user-producer-info-etl-2.0.0-20221214.111513-53-exec.jar
  user-producer-info-etl-2.0.0-20221215.111513-53-exec.jar

Above user-producer-info-etl-2.0.0-20221215.111513-53-exec.jar is the most recent file that I want to download? How can I achieve it?

Luckily for you, file names contains dates that are alphabetically sortable !

I don't know where you are so I'm guessing you have at least a shell and I propose this bash answer:

First get the last file name

readonly endpoint="https://your-gitlab.local"

# Get the last filename
readonly most_recent_file="$(curl -s "${endpoint}/get_list_uri"|sort|tail -n 1)"

# Download it
curl -LOs curl "${endpoint}/get/${most_recent_file}"

You will obviously need to replace urls accordingly but I'm sure you get the idea

  • -L : follow HTTP 302 redirects
  • -O : download file to local dir keeping the name as is
  • -s : silent don't show network times and stuff

you can also specify another local name with -o <the_most_recent_file>

for more info:

man curl

hth

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM