581

我有一个文本文档,其中包含一堆这种格式的 URL:

URL = "sitehere.com"

我要做的是运行curl -K myfile.txt,并将响应 cURL 返回的输出放入文件中。

我怎样才能做到这一点?

4

10 回答 10

825
curl -K myconfig.txt -o output.txt 

写入您指定的文件中收到的第一个输出(如果存在旧的则覆盖)。

curl -K myconfig.txt >> output.txt

将您收到的所有输出附加到指定文件。

注意:-K 是可选的。

于 2012-12-06T00:44:02.523 回答
232

对于单个文件,您可以使用-O而不是-o filename使用 URL 路径的最后一段作为文件名。例子:

curl http://example.com/folder/big-file.iso -O

将结果保存到当前文件夹中名为big-file.iso的新文件中。这样,它的工作方式类似于wget,但允许您指定使用 wget 时不可用的其他curl 选项。

于 2017-11-17T06:42:18.000 回答
62

有几个选项可以将 curl 输出到文件

 # saves it to myfile.txt
curl http://www.example.com/data.txt -o myfile.txt

# The #1 will get substituted with the url, so the filename contains the url
curl http://www.example.com/data.txt -o "file_#1.txt" 

# saves to data.txt, the filename extracted from the URL
curl http://www.example.com/data.txt -O 

# saves to filename determined by the Content-Disposition header sent by the server.
curl http://www.example.com/data.txt -O -J 
于 2019-03-28T07:17:12.087 回答
7

在这种情况下可以使用或curlwget所有这 3 个命令都执行相同的操作,在 http://path/to/file.txt 下载文件并将其保存到本地“my_file.txt”中:

wget http://path/to/file.txt -O my_file.txt  # my favorite--it has a progress bar
curl http://path/to/file.txt -o my_file.txt
curl http://path/to/file.txt > my_file.txt

注意第一个-O是大写字母“O”。

wget命令的好处是它显示了一个很好的进度条。

您可以通过比较它们的 sha512 哈希值来证明上述 3 种技术下载的文件完全相同。在运行sha512sum my_file.txt上述每个命令并比较结果后运行,显示所有 3 个文件具有完全相同的 sha 哈希(sha 总和),这意味着文件是完全相同的,逐字节。

另请参阅:wget 命令下载文件并另存为不同的文件名

于 2021-10-01T19:50:33.483 回答
7

对于那些想要在剪贴板中复制 cURL 输出而不是输出到文件的人,可以使用cURL 命令后pbcopy的管道。|

示例:curl https://www.google.com/robots.txt | pbcopy。这会将给定 URL 中的所有内容复制到剪贴板。

Linux 版本:curl https://www.google.com/robots.txt | xclip

视窗版本:curl https://www.google.com/robots.txt | clip

于 2018-07-25T17:10:02.333 回答
3

用于--trace-ascii output.txt将 curl 详细信息输出到文件output.txt

于 2020-09-04T02:13:58.690 回答
1

如果要将输出存储到桌面,请使用 git bash 中的 post 命令执行以下命令。它对我有用。

curl https://localhost:8080
    --request POST 
    --header "Content-Type: application/json" 
    -o "C:\Desktop\test.txt"
于 2020-05-14T08:07:08.350 回答
1

您需要在 "URL" -o "file_output" 之间添加引号,否则 curl 无法识别 URL 或文本文件名。

格式

curl "url" -o filename

例子

curl "https://en.wikipedia.org/wiki/Quotation_mark" -o output_file.txt

示例_2

curl "https://en.wikipedia.org/wiki/Quotation_mark" > output_file.txt  

只需确保添加引号即可。

于 2021-07-07T16:47:59.693 回答
0

有点晚了,但我认为 OP 正在寻找类似的东西:

curl -K myfile.txt --trace-ascii output.txt
于 2019-12-24T07:19:07.790 回答
-2

写入您指定的文件中收到的第一个输出(如果存在旧的则覆盖)。

curl -K myconfig.txt >> output.txt
于 2021-07-20T02:02:24.253 回答