Wget 具有不同的文件名,但扩展名相同

Wget 具有不同的文件名,但扩展名相同

我需要 wget 保存到不同的文件夹、不同的文件名和相同的扩展名,但在下载之前我没有文件名。


例如,假设我有:

http://ge.tt/api/1/files/someFile/0/blob?download

我需要将其下载到一个id,“fj39ejd”在文件夹中downloads

将其保存到的最佳方法是什么:

/path/to/downloads/fj39ejd.[extension it had before downloading]

关于如何实现这一目标有什么建议吗?

答案1

如果您希望本地文件具有服务器选择的名称,请使用wget --content-disposition --trust-server-names

如果您希望服务器选择的扩展具有本地选择的名称,则必须随后重命名。最简单的方法是创建一个空目录,调用wget该目录,然后将创建的任何文件重命名为您想要的名称。

dir="$(TMPDIR=$PWD mktemp -d)" &&
  (cd "$dir" && wget --content-disposition --trust-server-names 'http://ge.tt/api/1/files/someFile/0/blob?download') &&
  set "$dir/"* &&
  mv "$1" "fj39ejd.${1#"$dir"/*.}" &&
  rmdir "$dir"

答案2

我实际上想出了两种可行的方法:

a) 您可以将其保存到文件夹“fj39ejd” 看起来像:

downloads/fj39ejd/theFileNameThatWasBeing.Downloaded

或 b) 您可以创建一个tmp文件夹,该文件夹将在 while 循环中检查它是否包含包含“fj39ejd“然后explode就是获取扩展。但是,这个有点贵,而且连接可能会超时。

相关内容