Linux Tee Command with Examples

As a Linux user, getting familiar with the basic commands is crucial, as they can help you perform specific tasks on the computer and your VPS more efficiently. One of the examples is the Linux tee command. 

The Linux tee command takes the standard input, displays the output, and saves it into one or more files at the same time. This tutorial will show you how to use it, along with some examples.

Linux Tee Command Syntax and Uses

Be you start using the Linux Tee command, you should access your VPS using SSH. If you’re having trouble, check out our PuTTY tutorial.

Pro Tip

If you are using Hostinger VPS, you can easily manage it via our new browser-based SSH terminal, eliminating the need for additional software.

The basic syntax for the command is:

wc -l file1.txt | tee file2.txt

The above command will check the line count of file1.txt and output the result in the terminal and save it in file2.txt.

Sending the Linux Tee Command Output to Other Commands

While using the Linux tee command we get an output in the terminal, which we can pipe to another command for processing. The following command will list the files inside the folder and using the first pipe will write the output to the file test.txt and pass the output to the third command – grep to identify the files with the string py in them:

ls | tee test.txt | grep 'py'

Other Linux Tee Command Operations

If you want to learn more cool Linux tee command features, you should know how to open its manual! This will make the use of correct syntax much easier!

Most users tend to copy and paste the commands into the terminal, but we urge you to take the time to type them, so you can really get the hang of them, and understand the Linux tee, and other command syntax better.

To bring up the documentation you can use:

tee --help

Every command comes with version information. It can be checked using:

tee --version

By default, the tee command will overwrite the file with the output of the initial command. Which can be overridden by using an append option using -a switch.

ls | tee –a file.txt

With the Linux tee command, we can also save the output of a command to multiple files. The use of this option is for processing the output of the command multiple times in a shell script:

ls | tee file1.txt file2.txt file3.txt

Like with standard commands appending with >, the errors and stdout are handled differently in tee as well. Regular | pipes will save only the standard output to the file, and if we need both standard output and the error output, we need to use |& with the Linux tee command.

Normal standard output copy:

command  > file.txtThe regular way of redirecting the standard output
command  | tee file.txtUsing tee with overwriting
command  | tee -a file.txtUsing tee with appending

Both standard output and error streams:

command  &> file.txtThe regular way of redirecting the standard output and error
command  |& tee file.txtUsing tee with overwriting
command  |& tee -a file.txtUsing tee with appending

Writing files using elevated privileges in the vim editor is another advantage of the tee command. In a highly secured environment, normal Linux operations are carried out using nonprivileged users. To perform administrative tasks with admin privileges we use the sudo command.

Sometimes we need to edit the files which need admin privileges.

Abandoning changes and reopening a file using necessary privileges using sudo is one of the options. If we are using the tee command, we can avoid this situation by writing the file in the initial stage itself without abandoning the changes by using the elevated privilege option. When writing in the vim editor, the syntax would be as follows:

:w !sudo tee %


The Linux tee command is a handy utility for installing scripts and is unfortunately rarely known by the system admins. Once you understand the usage of this command, you will surely use it instead of output redirection using >. Good luck with improving your project! See you in the next tutorial.

The author

Edward S.

Edward is a content editor with years of experience in IT writing, marketing, and Linux system administration. His goal is to encourage readers to establish an impactful online presence. He also really loves dogs, guitars, and everything related to space.