wget vs curl: How to Download Files Using wget and curl
4 stars based on
The curl tool lets us fetch a given URL from the command-line. Sometimes we want to save a web file to our own computer. Other times we might pipe it directly into another program. Either way, curl has us covered. That --output flag denotes the filename some. Besides the display of a progress indicator which I explain belowyou don't have much indication of what curl actually downloaded. So let's confirm that a file named my.
Let's back up a bit: If you remember the Basics of the Unix Philosophyone of the tenets is:. In the example of curlthe author apparently believes that it's important to tell the user the progress of the download. For a very small file, that status display is not terribly helpful. Let's try it with a bigger file this is the baby names file from the Social Security Administration to see how the progress indicator animates:. If you're new to the command-line, you're probably used to commands executing every time you hit Enter.
In this case, the command is so long because of the URL that I broke it down c download binary file with curl two lines with the use of the backslashi. This is solely to make it easier for you to read. As far as the computer cares, it just joins the two lines together as if that backslash weren't there and runs it as one command. The curl progress indicator is a nice affordance, but let's just see if we get curl to act like all of our Unix tools.
In curl 's documentation of optionsthere is an option for silence:. Silent or quiet mode. Don't show progress meter or error messages. So those are the basics for the curl command.
There are many, many more options, but for now, we know how to use curl to do something that is actually quite powerful: Before we go further, though, let's look at the various ways this simple command can be re-written and, more crucially, screwed up:. As you might have noticed in the --silent documentation, it lists c download binary file with curl alternative form of -s.
Many options for many tools have a shortened alias. In fact, --output can be shortened to -o. Also, mind the position of my. The argument must follow after the -o …because curl.
How would curl know that my. In fact, you might see that you've created a file named -s …which is not the end of the world, but not something you want to happen unwittingly. By and large from what I can think of at the top of my headthe order of the options doesn't matter:. C download binary file with curl how -s http: That's because the -s option doesn't take an argument. But try the following:. The last thing to consider is what happens when you just curl for a URL with no options which, after all, should be optional.
C download binary file with curl you try it, think about another part of the Unix philosophy:. This is the Unix philosophy: Write programs that do one thing and do it c download binary file with curl. Write programs to work together. Write programs to handle text streams, because that is a universal interface.
If you curl without any options except for the URL, the content of the URL whether it's a webpage, or a binary file, such as an image or a zip file will be printed out to screen. Even with the small amount of HTML code that makes up the http: But what if we wanted to send the contents of a web file to another program?
Maybe to wcwhich is used to count words and lines? Then we can use the powerful Unix feature of pipes. In this example, I'm using curl 's silent option so that only the output of wc and not the progress indicator is seen. But not only is that less elegantit also requires creating a new file called temp. Now, this is a trivial concern, but someday, you may work with systems and data flows in which c download binary file with curl saving a file is not an available luxury think of massive files.
Downloading files with curl How to download files straight from the command-line interface.