Unix Redirection and Pipe Operation

Unix Operating System use 3 standard streams, Standard Input through which input is sent to command's, Standard Output to which output of the executed command is sent and Standard Error to which the errors encountered during the command execution is sent to. This post describes how to use the redirection operation to redirect the stream to and from file.

Stream Reference

Unix has a reference to represent these 3 streams.

  • 0 (Zero) - Standard Input Stream
  • 1 - Standard Output Stream
  • 2 - Standard Error Stream

Redirection

Input Redirection

Input redirection can be used to provide input to commands from a file. Input redirection can be achieved through the < or 0< operators.

Usage Syntax

command [opts] [args] 0< input-file-name

Input Redirection

In the above example, the grep command is being provided with an input from a file. Using grep we search for lines with "line" keyword present. The command output's the lines with the given keyword present inside the input file.

This command can also be used with or without 0 (zero), either way the results will be the same.

The file name can be specified along with the file location in the command.

Output Redirection

Redirecting output from commands can be done using the > or 1> operators. Both of them work the same way, it will redirect the output from the command and write it into a file specified.

Usage Syntax

command [opts] [args] 1> output-file-name

Output Redirection

The above example demonstrates the use of the output redirection by writing the output of the ls command into a file.

When writing the output to files, if the file already exist then the contents will be replaced.

Append Output Redirection

When a file already exits, you can use the >> operator to append the output.

Append Output Redirection

Error Redirection

To redirect the output to a file, use the output redirection reference 2>.

Usage Syntax

command [opts] [args] 2> output-file-name

Error Redirection

The above example illustrates the usage of error redirection by using the ls command against a directory and file that does not exist.

Pipe Operation

Pipe is one of the most useful operations available. With it we can provide the output of one command as an input to another command.

Usage Syntax

command [opts] [args] | command [opts] [args]

Pipe Operation

Here we can see how the pipe is used to redirect the output from the ls command and provide it as an input to the grep command to filter out the list provided.

Using these commands will make lots of your work easier. Try to make the best use of it.