Typically, the syntax of these characters is as follows, using <
to redirect input, and >
to redirect output.
command1 > file1
executes command1, placing the output in file1, as opposed to displaying it at the terminal, which is the usual destination for standard output. This will clobber any existing data in file1.
Using
command1 < file1
executes command1, with file1 as the source of input, as opposed to thekeyboard, which is the usual source for standard input.
command1 < infile > outfile
combines the two capabilities: command1 reads from infile and writes tooutfile
Variants[edit]
To append output to the end of the file, rather than clobbering it, use the>>
operator:
command1 >> file1
To read from a stream literal (an inline file, passed to the standard input), one can use a here document, using the <<
operator:
tr a-z A-Z << END_TEXT one two three uno dos tres END_TEXT
To read from a string, one can use a here string, using the <<<
operator:
tr a-z A-Z <<< "one two three"
or:
NUMBERS="one two three" tr a-z A-Z <<< "$NUMBERS"