Единственный прямой путь в спецификации HTTP для получения имени файла - заголовок Content-Disposition
.При отсутствии этого заголовка клиент обычно выводит имя файла на основе URI запроса.
В случае Wget (при условии, что заголовок Content-Disposition
не существует) он сохраняет файл симя, указанное в URI исходного запроса.Например, если вы вызываете Wget с http://example.com/afile
, который перенаправляет вас на http://example.com/bfile
, то сохраненный файл будет называться afile
.Это мера безопасности, предотвращающая перезапись злонамеренным сервером других важных файлов в вашем текущем каталоге, например, вашего .bashrc
.
. Это поведение можно отключить с помощью параметра --trust-server-names
, в этом случае он будет сохранен.файл с именем bfile
.
А затем идет контент-расположение. Если он включен и заголовок существует, он будет использоваться для именования файла.
Все это говорит о том, что окончательное имя файла немного сложно измерить.Самый простой способ - сохранить файл с помощью -O filename
, чтобы вы знали точное имя файла.Если вы не хотите этого делать, то самым простым вариантом будет вызвать wget с параметром -nv
, который выводит строку, подобную этой:
% wget -nv example.com
2019-04-20 10:43:48 URL:http://example.com/ [1270/1270] -> "index.html" [1]
Вы можете проанализировать этот вывод, чтобы получитьимя загруженного файла.