$ dosomething < inputfile > outputfile

Writing Output to the Terminal/Window

$ echo Please wait.
Please wait.
$ echo "this        was very widely spaced"
this        was very widely spaced

Writing Output with More Formatting Control

$ printf '%s = %d\n' Lines $LINES
Lines = 24

Writing Output Without the Newline

$ printf "%s %s" next prompt
next prompt$
$ echo -n prompt
prompt$

Saving Output from a Command

$ echo fill it up
fill it up
$ echo fill it up > file.txt

Saving Output to Other Files

$ echo some more data > /tmp/echo.out

Saving Output from the ls Command

$ ls
a.out cong.txt def.conf file.txt more.txt zebra.list
$
$ ls > /tmp/save.out
$ cat /tmp/save.out
a.out
cong.txt
def.conf
file.txt
more.txt
zebra.list

Sending Both Output and Error Messages to Different Files

$ myprogram 1> messages.out 2> message.err

Sending Both Output and Error Messages to the Same File

$ both >& outfile

Appending Rather Than Clobbering Output

$ ls > /tmp/ls.out
$ cd ../elsewhere
$ ls >> /tmp/ls.out
$ cd ../anotherdir
$ ls >> /tmp.ls.out

Using Just the Beginning or End of a File

$ tail -2 lines
$ head lines

Saving or Grouping Output from Several Commands

$ ( pwd; ls; cd ../elsewhere; pwd; ls; ) > /tmp/all.out

Connecting Two Programs by Using Output As Input

$ cat one.file another.file > /tmp/cat.out
$ sort < /tmp/cat.out

Connecting Two Programs by Using Output As Arguments

$ rm $(find . -name '*.class')

Keeping Files Safe from Accidental Overwriting

$ set +o noclobber
$ echo something > my.file
$ echo some more > my.file
$ set -o noclobber
$ echo something > my.file
bash: my.file: cannot overwrite existing file
$ echo some more >> my.file

Clobbering a File on Purpose

$ echo something > my.file
$ set -o noclobber
$ echo some more >| my.file
$ cat my.file
some more
$ echo once again > my.file
bash: my.file: cannot overwrite existing file