Redirection

What happens when we run ls? This isn't a trick question.

$ ls -F
Desktop/  Documents/  Downloads/  Music/  Pictures/  Public/  Templates/  Videos/

We get a list of the files and folders in the current directory printed to the screen. But what if we didn't want it to print to the screen but instead wanted to save it to a file somewhere?

Easy!

By default, commands run on the command line print to stdout (standard output). If we want to specify a different location to print to, we use the > symbol.

Try it out:

$ ls -F > filelist

No output appeared on the screen (stdout). Let's check what's in filelist

$ nano filelist

There it is!

Now, what do we do with it...? How about we try counting the number of lines in filelist?

Imagine we have a MUCH bigger directory and we want to know how many files and folders are in it. When we redirect ls to a file, every file and folder is written to a separate line; if we count the number of lines, we know how many files there are!

How do we count the number of lines? We use wc (wordcount)

wc

Yes, it's word_count, but it counts lines, words and characters. We'll play with wc more later, but for now, let's just count the number of lines in filelist. To specify that we want the number of _lines in a file we use the -l flag.

$ wc -l filelist
8 filelist

Cool! wc tells us that filelist has 8 lines, which means we have 8 files/folders in the HOME directory. (Yes, we already knew that since we can count, but still...)