Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, February 9, 2022



cat - concatenate and display files


/usr/bin/cat [-nbsuvet] [file...]


The cat utility reads each file in sequence and writes its contents on the standard output. Thus:

example% cat file

prints the contents of file on your terminal, and:

example% cat file1 file2 >file3

concatenates file1 and file2, and writes the results in file3. If no input file is given, cat reads from the standard input stream.


The following options are supported by /usr/bin/cat:


Number the lines, as –n, but omit the line numbers from blank lines.


Precede each line output with its line number.


cat is silent about non-existent files.


The output is not buffered.

Buffered output is the default.


Non-printing characters, with the exception of tabs, NEWLINEs and form feeds, are printed visibly. ASCII control characters (octal 000037) are printed as ^n, where n is the corresponding ASCII character in the range octal 100 – 137 (@, A, B, C, . . ., X, Y, Z, [, \, ], ^, and _); the DEL character (octal 0177) is printed ^?. Other non-printable characters are printed as M-x, where x is the ASCII character specified by the low-order seven bits.

When used with the –v option, the following options can be used:


A $ character is printed at the end of each line, prior to the NEWLINE.


Tabs are printed as ^Is and form feeds to be printed as ^Ls.

The –e and –t options are ignored if the –v option is not specified.


The following operand is supported:


A path name of an input file. If no file is specified, the standard input is used. If file is  − , cat reads from the standard input at that point in the sequence. cat does not close and reopen standard input when it is referenced in this way, but accepts multiple occurrences of  −  as file.


Example 1 Concatenating a File

The following command writes the contents of the file myfile to standard output:

example% cat myfile
Example 2 Concatenating Two files into One

The following command concatenates the files doc1 and doc2 and writes the result to doc.all.

example% cat doc1 doc2 > doc.all
Example 3 Concatenating Two Arbitrary Pieces of Input with a Single Invocation

When standard input is a terminal, the following command gets two arbitrary pieces of input from the terminal with a single invocation of cat:

example% cat start - middle - end > file

However, if standard input is a regular file, the above command would be equivalent to the following command:

example% cat start - middle /dev/null end > file

because the entire contents of the file would be consumed by cat the first time  −  was used as a file operand and an end-of-file condition would be detected immediately when  −  was referenced the second time.

Environment Variables

See environ(7) for descriptions of the following environment variables that affect the execution of cat: LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, and NLSPATH.

Exit Status

The following exit values are returned:


All input files were output successfully.

> 0

An error occurred.


See attributes(7) for descriptions of the following attributes:

Interface Stability

See Also

tac(1), touch(1), attributes(7), environ(7), standards(7)


Redirecting the output of cat onto one of the files being read causes the loss of the data originally in the file being read. For example,

example% cat filename1 filename2 > filename1

causes the original data in filename1 to be lost.