Read in 4 minutes

last updated 

Linux Cat Command

The cat command is one of the most widely used command in Linux. The name of the cat command comes from its functionality to concatenate files. It can read and concatenate files, writing their contents to the standard output. If no file is specified or if the input file name is specified as a single hyphen (-) it reads from the standard input.

Cat is most commonly used to display the contents of one or multiple text files, combine files by appending the contents of one file to the end of another file, and create new files.

In this tutorial, we will show you how to use the cat command through practical examples.

Cat Command Syntax

Before going into how to use the cat command, let’s start by reviewing the basic syntax.

The cat utility expressions take the following form:

cat [OPTIONS] [FILE_NAMES]
  • OPTIONS - cat options. Use cat --help to view all available options.
  • FILE_NAMES - Zero or more file names.

Displaying File Contents with Cat

The most basic and common usage of the cat command is to read the contents of files.

For example, the following command will display the contents of the /etc/issue file in the terminal:

cat /etc/issue

Redirect Contents of File

Instead of displaying the output to stdout (on the screen) you can redirect it to a file.

The following command will copy the contents of file1.txt to file2.txt using the (>) operator :

cat file1.txt > file2.txt

Normally you would use the cp command to copy a file.

If the file2.txt file doesn’t exist the command will create it. Otherwise it will overwrite the file.

Use the (>>) operator to append the contents of file1.txt to file2.txt :

cat file1.txt >> file2.txt

Same as before, if the file is not present it will be created.

To display contents of a file with line numbers use the -n argument:

cat -n /etc/lsb-release
1	DISTRIB_ID=Ubuntu
2	DISTRIB_RELEASE=18.04
3	DISTRIB_CODENAME=bionic
4	DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"

Suppress Repeated Empty Lines.

Use the -s argument to omit the repeated empty output lines:

cat -s file.txt

Display TAB characters

Use the -T argument to visually distinguish between tabs and spaces.

cat -T /etc/hosts
127.0.0.1^Ilocalhost
127.0.1.1^Iubuntu1804.localdomain

The TAB characters will be displayed as ^I.

Display End of Lines

To display the invisible line ending character use the -e argument:

cat -e /etc/lsb-release
DISTRIB_ID=Ubuntu$
DISTRIB_RELEASE=18.04$
DISTRIB_CODENAME=bionic$
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"$

The Line endings will be displayed as $.

Concatenating Files with Cat

When passing two or more file names as arguments to the cat command the files contents will be concatenated. Cat reads the files in the sequence given in its arguments and displays the files contents in the same sequence.

For example, the following command will read the contents of file1.txt and file2.txt and display the result in the terminal:

cat file1.txt file2.txt

You can concatenate two or more text files and write them to a file.

The following command will concatenate the contents of file1.txt and file2.txt and write them to a new file combinedfile.txt using the (>) operator :

cat file1.txt file2.txt > combinedfile.txt

If the combinedfile.txt file doesn’t exist the command will create it. Otherwise it will overwrite the file.

To concatenate the contents of file1.txt and file2.txt and append the result to file3.txt to use the (>>) operator:

cat file1.txt file2.txt >> file3.txt

If the file is not present it will be created.

When concatenating files with cat, you can use the same arguments as shown in the previous section.

Creating Files with Cat

When creating a small file it is much easier to use cat instead of using Vim, Sublime Text, Visual Studio Code or any other text editor.

To create a new file use the cat command followed by the redirection operator (‘>’) and the name of the file you want to create. Press Enter type the text and once you are done press the CRTL+D to save the files.

In the following example we are creating a new file named file1.txt:

cat > file1.txt

In the following example we are creating a new file named file1.txt:

cat > file1.txt

If a file named file1.txt is present it will be overwritten. Use the (‘>>’) operator to append the output to an existing file.

Conclusion

By now you should have a good understanding of how to use the Linux cat command.

If you have any question or feedback feel free to leave a comment.