强制wget使用实际文件名

在脚本中使用wget从Google文档下载某些文件时,不会保留该文件的名称。 例如:

 wget 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls' 

将文件保存为pub?key=pyj6tScZqmEfbZyl0qjbiRQ而不是indicatorhivestimatedprevalence15-49.xls ,如果我点击浏览器中的链接,这就是我得到的。 有没有办法在wget强制执行这种“类似浏览器”的行为?

 wget --content-disposition 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls' 

会为你做的伎俩。

它仍然没有完全实现,似乎有时会wget ,所以它不是wget的默认选项,使用它需要您自担风险。

Google Docs链接实际上是告诉服务器上的脚本运行,将其解析为您想要的文件。 据我所知,该文件在els表单中不存在于服务器上,但是在您要求时在运行时生成。 因此,没有任何东西可以获得。

要下载该文件,您需要使用google API http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs/

您可以尝试使用curl下载并保留原始文件名:

 curl -OJL ${your_url} 
  • -O表示远程名称
  • -J表示remote-header-name
  • -L的位置

请参阅curl命令行选项 。