Linux tee Command – Write Output to File and Screen
The tee command in Linux is used to read from standard input (stdin) and write to both standard output (screen) and one or more files simultaneously. It is commonly used in combination with pipes (|) to save command output while still displaying it.
Syntax of tee
command | tee [OPTIONS] filename
command→ The command whose output will be processed.filename→ The file where the output will be saved.
If multiple filenames are specified, tee writes to all of them.
Basic Usage of tee
1. Save Command Output to a File
ls -l | tee output.txt
This displays the output of ls -l on the terminal and saves it to output.txt.
2. Append Output to a File (-a)
By default, tee overwrites the file. To append instead:
ls -l | tee -a output.txt
Now, the new output is added to output.txt instead of replacing it.
3. Save Output to Multiple Files
ls -l | tee file1.txt file2.txt
This saves the output into both file1.txt and file2.txt.
4. Hide Output but Still Save to a File
To suppress output and only write to a file:
ls -l | tee output.txt > /dev/null
This saves ls -l output into output.txt without showing it on the screen.
Advanced tee Usage
5. Use tee with sudo to Write Protected Files
Normally, sudo command > file fails due to permission issues. tee solves this:
echo "Custom config" | sudo tee /etc/myconfig.conf
This writes "Custom config" into /etc/myconfig.conf with root permissions.
To append instead of overwriting:
echo "New entry" | sudo tee -a /etc/myconfig.conf
6. Combine tee with Other Commands
Monitor a Log File While Saving (tail -f)
tail -f /var/log/syslog | tee log_copy.txt
This continuously prints and saves new logs to log_copy.txt.
7. Store dmesg Output for System Logs
dmesg | tee boot.log
This captures the kernel boot messages and saves them.
8. Use tee in a Script
An example script that logs both terminal and file output:
#!/bin/bash
echo "Starting backup..." | tee backup.log
tar -czf backup.tar.gz /home/user | tee -a backup.log
echo "Backup complete." | tee -a backup.log
Now, both the terminal and backup.log will show the progress.
Difference Between tee and > / >>
| Command | Purpose |
|---|---|
command > file | Redirects output to a file (overwrites). |
command >> file | Redirects output to a file (appends). |
| `command | tee file` |
Conclusion
The tee command is useful for logging, debugging, and saving output while still displaying it on the terminal. It is a powerful tool for system administrators and script automation.
Would you like additional details or SEO optimization? š
