NAME
cat —
concatenate and print
files
SYNOPSIS
cat |
[-beflnstuv]
[-B bsize]
[-]
[file ...] |
DESCRIPTION
The
cat utility reads files sequentially, writing them to the
standard output. The
file operands are processed in
command line order. A single dash represents the standard input, and may
appear multiple times in the
file list. If no
file operands are given, standard input is read.
The word “concatenate” is just a verbose synonym for
“catenate”.
The options are as follows:
-
-
- -B
bsize
- Read with a buffer size of bsize
bytes, instead of the default buffer size which is the blocksize of the
output file.
-
-
- -b
- Implies the -n option, but doesn't number
blank lines.
-
-
- -e
- Implies the -v option, and displays a
dollar sign (‘
$
’) at the end of each
line as well.
-
-
- -f
- Only attempt to display regular files.
-
-
- -l
- Set an exclusive advisory lock on the standard output file
descriptor. This lock is set using
fcntl(2) with the
F_SETLKW
command. If the output file is already
locked, cat will block until the lock is acquired.
-
-
- -n
- Number the output lines, starting at 1.
-
-
- -s
- Squeeze multiple adjacent empty lines, causing the output
to be single spaced.
-
-
- -t
- Implies the -v option, and displays tab
characters as ‘
^I
’ as well.
-
-
- -u
- The -u option guarantees that the output
is unbuffered.
-
-
- -v
- Displays non-printing characters so they are visible.
Control characters print as ‘
^X
’ for
control-X; the delete character (octal 0177) prints as
‘^?
’. Non-ascii characters (with the
high bit set) are printed as ‘M-
’ (for
meta) followed by the character for the low 7 bits.
EXIT STATUS
The
cat utility exits 0 on success, and >0 if an error
occurs.
EXAMPLES
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 (e.g.,
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.
SEE ALSO
head(1),
hexdump(1),
lpr(1),
more(1),
pr(1),
tail(1),
view(1),
vis(1),
fcntl(2)
Rob Pike, UNIX
Style, or cat -v Considered Harmful, USENIX Summer
Conference Proceedings, 1983.
STANDARDS
The
cat utility is expected to conform to the
IEEE Std 1003.2-1992 (“POSIX.2”)
specification.
The flags [
-Bbeflnstv] are extensions
to the specification.
HISTORY
A
cat utility appeared in
Version 1
AT&T UNIX. Dennis Ritchie designed and wrote the first man page. It
appears to have been
cat(1).
BUGS
Because of the shell language mechanism used to perform output redirection, the
command “
cat file1 file2 > file1
” will
cause the original data in file1 to be destroyed! This is performed by the
shell before
cat is run.