Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何输出到文件并在cURL中获取特定的头文件?_Linux_Unix_Curl - Fatal编程技术网

Linux 如何输出到文件并在cURL中获取特定的头文件?

Linux 如何输出到文件并在cURL中获取特定的头文件?,linux,unix,curl,Linux,Unix,Curl,我有一个文件链接,我将使用cURL下载,我需要将这个文件输出到一些临时文件,我还需要获得特定的头值 例如: Link: http://my.download.url<br> Output to: /tmp/my-downloaded-file<br> Header(Content-Length or whatever): abc123 链接:http://my.download.url 输出到:/tmp/my下载的文件 标题(内容长度或任何内容):abc123 那么,文

我有一个文件链接,我将使用cURL下载,我需要将这个文件输出到一些临时文件,我还需要获得特定的头值

例如:

Link: http://my.download.url<br>
Output to: /tmp/my-downloaded-file<br>
Header(Content-Length or whatever): abc123
链接:http://my.download.url
输出到:/tmp/my下载的文件
标题(内容长度或任何内容):abc123
那么,文件名取决于头的值

据我所知,cURL不允许您在一个流(比如标准输出)上获取标题,在另一个流上获取主体。你需要做的是要么把它们都放在一起解析出来,要么执行两个调用。以下是两种呼叫方法:

# URL and the header you want
url="http://www.example.com"
hdr="Content-Length"

# get the value of the header (this does not download the body)
headerValue=$(curl -sI "$url" | grep -i "^$hdr:" | cut -f2 -d: | sed 's/^[ \r\n\t]*//;s/[ \r\n\t]*$//')

# create a file name from that header value
fileName="/tmp/download-$headerValue"

# download the body into that file
curl -so "$fileName" "$url"

提供要从中提取数据的精确输出contents@Inian我想将输出复制到一个名为content-disposition.Fair的文件(我将提供的路径)中!你给它写信后想做什么?提供example@Inian我将获得名称并在我的prod中运行该文件。我需要该名称,因为它将作为参数传递给某个函数。我在这里没有看到问题,您可以执行
curl-s>
来执行此操作?这就是您想要做的吗?第一个调用执行一个
,它只下载头。第二个调用执行一个
GET
,它将下载标题和正文。Oww获得了它,因此它不会下载两次。谢谢!