How to use wget; download many files with one command.
A typical way to download a file is to “right-click” on it and “save as” to a folder on your computer. Downloading a few files this way is not tedious. But if an audio book has 25 to 30 files you can bet I don’t want to do those manual moves over and over again.
Using a terminal, there’s a faster way to download files. I’ll introduce now one of my often-used commands: wget. This command has many useful options. For example, you can download files, set up custom directory structures for your download(s), or see if a file exists without actually downloading it.
Using the command (in simple terms): Open a terminal and type wget [options] [urls] at the prompt (usually a dollar sign). You can use one or several URLs. Options are (well…) optional.
Here’s a practical example where you can download a gif image from the O’Reilly site linked below. When you open a Linux terminal, you are usually in your user’s “home” directory. This is fine for the purpose of this example. Issue the command
Here’s what will happen: the file 0596009305_bkt.gif gets downloaded and saved to your home folder. Cool right? But it was a bit of work (typing) just to download one file. How does this save me time?
Yes, the above example is overly-simplified. You can, if you wish, download any “.gif” or “.jpg” files from a given web address in the example below. It’s a time-saving single command, borrowed from the commandlinefu website mentioned in the “cool and advanced uses of wget” link below.
wget -r -l1 --no-parent -nH -nd -A".gif,.jpg" http://example.com/images
*Change the “example.com/images” to a valid web address. The options above (explained) are:
- -r for “recursive”
- -l1 only get files in the “images” directory (don’t dive into subdirectories)
- –no-parent and -nH and -nd : ignore directory structure (no directories—just get the files)
- “-A” is the “accept list” for files of type [.gif and .jpg]. It’s case-sensitive, so it would not download files ending in “.JPG”, so if you needed those too, specify with -A”.gif,.jpg,.JPG”
I’ll post another awesome usage of wget in another post. Thanks for reading.