# Linux commands: cat

> Learn how the Linux cat command prints a file to standard output, joins multiple files into one with redirection, and shows line numbers with the -n option.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2020-09-03 | Topics: [CLI](https://flaviocopes.com/tags/cli/) | Canonical: https://flaviocopes.com/linux-command-cat/

Similar to [`tail`](https://flaviocopes.com/linux-command-tail/) in some way, we have `cat`. Except `cat` can also add content to a file, and this makes it super powerful.

In its simplest usage, `cat` prints a file's content to the standard output:

```bash
cat file
```

You can print the content of multiple files:

```bash
cat file1 file2
```

and using the output redirection operator `>` you can concatenate the content of multiple files into a new file:

```bash
cat file1 file2 > file3
```

Using `>>` you can append the content of multiple files into a new file, creating it if it does not exist:

```bash
cat file1 file2 >> file3
```

When watching source code files it's great to see the line numbers, and you can have `cat` print them using the `-n` option:

```bash
cat -n file1
```

You can only add a number to non-blank lines using `-b`, or you can also remove all the multiple empty lines using `-s`.

`cat` is often used in combination with the pipe operator `|` to feed a file content as input to another command: `cat file1 | anothercommand`.

> This command works on Linux, macOS, WSL, and anywhere you have a UNIX environment
