Use Content-Disposition
HTTP response header to determine filename and use it to store downloaded file.
Inspect HTTP headers for a file that will be used in the following examples.
$ curl --head https://exmaple.org/dokuwiki-stable.tgz
HTTP/1.1 200 OK Server: nginx/1.10.3 Date: Fri, 23 Mar 2018 19:39:14 GMT Content-Type: application/octet-stream Content-Length: 3505643 Last-Modified: Fri, 23 Mar 2018 19:30:51 GMT ETag: "5ab4d75b-357deb" Content-Disposition: attachment; filename="dokuwiki-stable-2017-02-19e.tgz" Accept-Ranges: bytes
curl
Write output to a local file using filename extracted from the URL.
$ curl --remote-name --write-out "Downloaded %{filename_effective} file" --silent https://exmaple.org/dokuwiki-stable.tgz
Downloaded dokuwiki-stable.tgz file
Write output to a local file using name specified in Content-Disposition
HTTP response header.
$ curl --remote-name --remote-header-name --write-out "Downloaded %{filename_effective} file" --silent https://exmaple.org/dokuwiki-stable.tgz
Downloaded dokuwiki-stable-2017-02-19e.tgz file
wget
Write output to a local file using filename extracted from the URL.
$ wget --no-verbose https://wiki.fishsilentcruise.space/dokuwiki-stable.tgz
2018-03-23 19:54:29 URL:https://exmaple.org/dokuwiki-stable.tgz [3505643/3505643] -> "dokuwiki-stable.tgz" [1]
Write output to a local file using name specified in Content-Disposition
HTTP response header.
$ wget --no-verbose --content-disposition https://wiki.fishsilentcruise.space/dokuwiki-stable.tgz
2018-03-23 19:54:53 URL:https://exmaple.org/dokuwiki-stable.tgz [3505643/3505643] -> "dokuwiki-stable-2017-02-19e.tgz" [1]