The cat
command is a very popular and versatile command in the 'nix ecosystem. There are 4 common usages of the cat
command. It can display a file, concatenate (combine) multiple files, echo text, and it can be used to create a new file.
Displaying a file
The most common use of the cat command is to output the contents of a file. The following is an example that you can try.
echo "Dance, Dance" > cat_create #create a file
cat cat_create
In this simple example, we're using a combination of echo
and a redirect to create a file containing "Dance, Dance". We then use the cat
command to display the contents.
The output is as follows:

(Con)cat
The previous example is actually a specific case of the cat command's main function, which is to concatenate files for display. If we use the command the same way, but give it two or more files, then it outputs the concatenation for the files.
If we run the following commands:
echo "This is how we do it" > test1 #create 1st file
echo "*This is how we do it*" > test2 #create 2nd file
cat test1 test2
The output is the contents of the 1st file, followed by the contents of the 2nd file. You can give cat many files and it will concatenate (combine) all of them. Notice however, that the cat command automatically inserts a line break between outputs.

cat
also provides some switches to to do things such as show non-print characters (-v), or number your lines (-n). A complete breakdown can be found in the man pages.
Echoing
This is a less common usage of cat
, but is the basis for the next section. If you run the cat
command with no commands, cat
will run in interactive mode and echo anything you type until you exit the command.

In the example here, I've typed a single word per line. Each time I hit enter, the line was echoed.
You can also pipe text to cat
, in which case that text is echoed. For example:
echo "Piping fun" | cat
This will result in the following output:

Creating a File
In the previous examples, we've been using the echo
command redirected to a file to create new files. Cat can be used in a similar way. In fact, we can use cat
's concat and echo functionality to create files.
We can create a file containing the concatenation of multiple files like this:
echo "File 1 Contents" > file1
echo "File 2 Contents" > file2
echo "File 3 Contents" > file3
cat file1 file2 file3 > combined_file
cat combined_file
In the above example, we're creating 3 files using echo
, combining the 3 files into one using cat
, and then displaying the new combined file using cat
.

We can also use cat
's interactive mode to create a file with the text that we type into the terminal.

Each time you hit enter, it commits the text to the file. If you have uncommitted text and exit, it won't be captured in the file.
This is a fantastic way to create a file quickly with the ability to enter the content of the file.
Using Touch to create a file instead
Sometimes you just need a file to exist. As an alternative to using cat
to create a file, you can use the touch
command.
The touch
command was designed to update the modified timestamp of a file, but is commonly used as a quick way to create an empty file. Here is an example of that usage:
touch new_file_name
The touch command can create multiple files, update the modification and/or creation timestamps, and a bunch of other useful things. The full man pages can be found here.
Touch is commonly used to ensure that a file exists, and is a great command if you need an empty file quickly.
Summary
Cat is a very useful command. You can use it to create, display, and combine text files very quickly and easily.
If you only need a file to exist, but don't mind (or require) it being empty, using touch
is a great alternative.
Hughie Coles is a lead developer at Index Exchange. He writes about software architecture, scaling, leadership, and culture. For more of his writing, check out his blog on medium.