当文件位置未知时,在Linux下载文件

对不起,如果这不清楚,但我想build立一个脚本,下载一个文件。 目前,我下载文件的方法是通过点击一个链接,如下所示:

https://www.URL.com/view?downloadFile=AcctItemFiles\1234567890.txt 

我尝试使用wget命令,但显然不工作,因为该链接不是一个实际的文件位置。 任何想法如何找出实际的文件位置或如何下载与该链接的文件将是有益的。

wget应该没有问题,因为它执行的GET命令就像这样的URL。 我能想到的唯一的问题就是:

  • \是一个特殊的shell字符,您需要将URL放在引号中,以防止shell将\1转换为1 。 更好的是,将\字符转义为%5C
  • wget是命名文件view?downloadFile=AcctItemFiles\1234567890.txt而不是像你的网页浏览器那样健全。 使用-O filename选项强制它将所有下载的数据写入指定的文件名,例如

(有趣的…一个代码块不能遵循一个要点)

 wget -O 1234567890.txt "http://www.whatever.com/view?downloadFile=AcctItemFiles\1234567890.txt" 

或者,使用--content-disposition选项来告诉它使用服务器在头文件中提供的文件名进行保存(阅读并理解关于它的错误和需要两个请求的警告,如果目标脚本不使用不支持HEAD命令)或者,使用curl -O -J ...而不是wget,其中-O -J一起指示它从头中读取输出文件名。 文档并没有说curl需要两个请求,但curl 最近由于信任无效的文件名而有一个漏洞 ,所以“buggy”可能仍然适用。

尝试使用“-L”标志而不是wget使用curl。

  -L/--location (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place. 

curl和wget互补。