Download to a file named by the URL

Many URLs, however, already contain the filename part in the rightmost end. curl lets you use that as a shortcut so you do not have to repeat it with -o. Instead of:

curl -o file.html

You can save the remote URL resource into the local file 'file.html' with this:

curl -O

This is the -O (uppercase letter o) option, or --remote-name for the long name version. The -O option selects the local filename to use by picking the filename part of the URL that you provide. This is important. You specify the URL and curl picks the name from this data. If the site redirects curl further (and if you tell curl to follow redirects), it does not change the filename curl uses for storing this.

Store in another directory

When the correct filename to use has been selected as explained above, you can still change the directory in which that file will be saved by using --output-dir. It is especially useful in combination with -O of course, as that option otherwise implies saving the file in the current directory.

To save the new file in the /tmp directory using a filename taken from the URL:

curl -O --output-dir /tmp

Use the URL's filename part for all URLs

As a reaction to adding a hundred -O options when using a hundred URLs, we introduced an option called --remote-name-all. This makes -O the default operation for all given URLs. You can still provide individual "storage instructions" for URLs but if you leave one out for a URL that gets downloaded, the default action is then switched from stdout to -O style.