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

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

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

答案1

以下是使用wget和实现此目的的一种方法cut

wget -nv https://upload.wikimedia.org/wikipedia/commons/5/54/Golden_Gate_Bridge_0002.jpg 2>&1 |cut -d\" -f2

解释一下,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]

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]

相关内容