我目前正在使用
curl -w "%%{filename_effective}" "http://example.com/file.jpg" -L -J -O -s
从下载地址打印服务器施加的文件名,但将文件下载到目录。 我怎样才能得到文件名而不下载文件?
在批处理文件中执行HEAD
请求:
curl -w "%%{filename_effective}" "http://example.com/file.jpg" -I -X HEAD -L -J -O -s
这样,根据RFC2616 ,所请求的文件本身将不会被下载:
HEAD方法与GET相同,除了服务器不能在响应中返回消息体。 (…)这个方法可以用来获得有关请求隐含的实体的元信息,而不用传送实体主体本身。
请注意,这将会创建两个文件,尽管只有收到的头数据curl
。 我明白,你的主要兴趣不是下载(可能是很多和/或大)的文件,所以我想这应该是好的。
编辑:关于后续问题:
是否真的没有办法只得到只有内容处置文件名而不下载任何东西?
恐怕,单独curl
似乎是不可能的。 curl
不输出文件的唯一方法是-o NUL
(Windows)例程,如果你这样做, %{filename_effective}
变成NUL
。