从 wget --content-disposition 获取文件名

Rof*_*fin 6 bash wget shell-script

在 bash 脚本内部,我动态下载一个文件,因此我用它wget --content-disposition来确保文件名正确,但是我将如何检索wget保存它的文件的名称?

小智 6

wget这是使用and执行此操作的一种方法cut

wget -nv https://upload.wikimedia.org/wikipedia/commons/5/54/Golden_Gate_Bridge_0002.jpg 2>&1 |cut -d\" -f2
Run Code Online (Sandbox Code Playgroud)

解释一下,wget -nv ...打印出类似这样的内容:

2016-11-15 14:58:44 URL:https://upload.wikimedia.org/wikipedia/commons/5/54/Golden_Gate_Bridge_0002.jpg [1072554/1072554] -> "Golden_Gate_Bridge_0002.jpg.22" [1]
Run Code Online (Sandbox Code Playgroud)

wget 上的标志-nv只是使其“非详细”(参见man wget:)

由于将wget其输出写入,STDERR我们必须将其重定向到STDOUT才能提取文本;为此,我们2>&wget. 然后为了得到最后的文件名,我使用了cut. 用于-d\"指定我们用作"分隔符。指定-f2我们需要第二个“列”,即第一个和第二个分隔符之间的数据"

第一栏:2016-11-15 14:58:48 URL:https://upload.wikimedia.org/wikipedia/commons/5/54/Golden_Gate_Bridge_0002.jpg [1072554/1072554] -> "Golden_Gate_Bridge_0002.jpg.23`" [1]