The command:
will print the contents of
file1 to the standard output.
The command:
will sequentially print the contents of
file1 and
file2 to the file
file3, truncating
file3 if it already exists. See the manual page for your shell (i.e.,
sh(1)) for more information on redirection.
The command:
cat file1 - file2 - file3
will print the contents of
file1, print data it receives from the standard input until it receives an
EOF (‘^D') character, print the contents of
file2, read and output contents of the standard input again, then finally output the contents of
file3. Note that if the standard input referred to a file, the second dash on the command-line would have no effect, since the entire contents of the file would have already been read and printed by
cat when it encountered the first ‘-' operand.