[ prev | next | top ]

## 8. Redirection

Apart from all the regular redirections like the Bourne shell has, zsh can do more. You can send the output of a command to more than one file, by specifying more redirections like

    % echo Hello World >file1 >file2

and the text will end up in both files. Similarly, you can send the output to a file and into a pipe:

    % make > make.log | grep Error

The same goes for input. You can make the input of a command come from more than one file.

    % sort <file1 <file2 <file3

The command will first get the contents of file1 as its standard input, then those of file2 and finally the contents of file3. This, too, works with pipes.

    % cut -d: -f1 /etc/passwd | sort <newnames

The sort will get as its standard input first the output of `cut` and then the contents of `newnames`.

Suppose you would like to watch the standard output of a command on your terminal, but want to pipe the standard error to another command. An easy way to do this in zsh is by redirecting the standard error using `2> >(`...`)`.

    % find / -name games 2> >(grep -v ’Permission’ > realerrors)

The above redirection will actually be implemented with a regular pipe, not a temporary named pipe.

[ prev | next | top ]