OS X: Using curl instead of wget
OS X does not come with
wget, a command-line tool for retrieving websites. For a while, I grumbled about this. I knew that
curl was installed, but I hadn't ever used
curl from the command line. But once I tried it out, I realized that for my needs,
curl is just as good as
wget... and I don't have to install anything extra to get it.
Here's how to use
curl to fetch a remote URL:
$ curl -OL h ttp://spine-health.com/index.php % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 34646 0 34646 0 0 15314 0 --:--:-- 0:00:02 --:--:-- 17767
This will download the remote file and store it locally in
index.php. If you leave off the
-O, it will write the file to standard output (your terminal, usually).
curl: Remote file name has no length!
Fetching from a URL's root can behave differently. If you perform the same command as above, but pointing to the base URL, you will get an error:
$ curl -OL h ttp://spine-health.com/ curl: Remote file name has no length! curl: try 'curl --help' or 'curl --manual' for more information
What's going on here? The error is not terribly informative on this point. The problem is that
curl doesn't know where to write the output file. A better command here is something like this:
$ curl -L h ttp://spine-health.com/ > out.html
This time, the retrieved data will be written to the
Like wget, curl has many options. You can read the man page for details, or you can get a quick summary with the usual
curl --help command.