Write the output of curl to a file (curl)
Passing the -o <file>
or --output <file>
flag to curl saves the output to a file rather than to stdout.
For example, in the github action for my til repo, the command curl --fail -o main/til.db https://raw.githubusercontent.com/mharty3/til-db/main/til.db
downloads the til database and saves it to the file main/til.db
From the curl manpage:
-o, –output
Write output to
instead of stdout. If you are using {} or [] to fetch multiple documents, you should quote the URL and you can use '#' followed by a number in the specifier. That variable will be replaced with the current string for the URL being fetched. Like in: curl “http://{one,two}.example.com” -o “file_#1.txt”
or use several variables like:
curl “http://{site,host}.host[1-5].com” -o “#1_#2”
You may use this option as many times as the number of URLs you have. For example, if you specify two URLs on the same command line, you can use it like this:
curl -o aa example.com -o bb example.net
and the order of the -o options and the URLs doesn’t matter, just that the first -o is for the first URL and so on, so the above command line can also be written as
curl example.com example.net -o aa -o bb
See also the –create-dirs option to create the local directories dynamically. Specifying the output as ‘-‘ (a single dash) will force the output to be done to stdout.
See also -O, –remote-name, –remote-name-all and -J, –remote-header-name.