Normally, the standard output in the shell is your screen (or an open shell window)
and the standard input is the keyboard. With the help of certain symbols you can
redirect the input or the output to another object, such as a le or another command.
Redirection
With > you can forward the output of a command to a le (output redirection),
with < you can use a le as input for a command (input redirection).
Pipe
By means of a pipe symbol | you can also redirect the output: with a pipe, you
can combine several commands, using the output of one command as input for
the next command. In contrast to the other redirection symbols > and <, the use
of the pipe is not constrained to les.
17.10.1 Examples for Redirection and Pipe
1
To write the output of a command like ls to a le, enter
ls -l > filelist.txt
This creates a le named filelist.txt that contains the list of contents of
your current directory as generated by the ls command.
However, if a le named filelist.txt already exists, this command overwrites
the existing le. To prevent this, use >> instead of >. Entering
ls -l >> filelist.txt
simply appends the output of the ls command to an already existing le
named filelist.txt. If the le does not exist, it is created.
2 Redirections also works the other way round. Instead of using the standard
input from the keyboard for a command, you can use a le as input:
sort < filelist.txt
This will force the sort command to get its input from the contents of filelist
.txt. The result is shown on the screen. Of course, you can also write the result
into another le, using a combination of redirections:
sort < filelist.txt > sorted_filelist.txt
3
If a command generates a lengthy output, like ls -l may do, it may be useful
to pipe the output to a viewer like less to be able to scroll through the pages.
To do so, enter
ls -l | less
The list of contents of the current directory is shown in less.
212 Start-Up