wiki/notebook/cli.curl.org
Gabriel Arazas 110ec318e0 Update notebook as of 2021-11-06
- Some updates to pacman as I'm going to trying to use Open Build
Service which apparently has support for publishing Arch Linux packages.
Pretty nice!

- Starting to take more notes for Git as I use it beyond the simple
commit and push workflow. I mostly use it to create patches for
packaging other applications.

- Updates for Drawabox.
2021-11-06 12:06:25 +08:00

1.9 KiB

Command line: cURL

The all-time favorite client-side networking tool for basic stuff. It is seriously one of the best free and open-source tool out there with the plethora of protocols, leading implementation for various protocols such as HTTP3, and a lot of configurable options to fully control your request.

Synopsis

curl [option...] [URL...]

cURL supports creating requests with different protocols. Among them are HTTP, Gopher, DICT, and simple file. To see more, you can view the cURL manual page (i.e., man curl.1) and see the protocols section.

Options

  • -o [FILE], --output [FILE] - save the results in the given file
  • -O, --remote-name - save the results as the remote name; useful for downloading
  • -L, --location - if there redirects, follow them; mainly used in HTTP and download links that often redirects to the real location

Examples

This is a massive tool with a massive history so a massive list may be justified for this one.

Basic usage

# It will be recognized as a request to an HTTP endpoint in 'gnu.org'.
curl https://gnu.org

# Save the result in a file.
curl https://foo-dogsquared.github.io --output filename

Go-to command for downloading files with cURL

curl -LO https://cdn.media.ccc.de/events/lac/lac18/h264-hd/lac18-24-eng-Carla_Plugin_Host_-_Feature_overview_and_workflows_hd.mp4

It can be also written like the following code block. Useful when scripting to make it readable.

curl --location --output-name https://cdn.media.ccc.de/events/lac/lac18/h264-hd/lac18-24-eng-Carla_Plugin_Host_-_Feature_overview_and_workflows_hd.mp4