tee Cheatsheet
Basic Syntax
Core tee command forms.
| Command | Description |
|---|---|
command | tee file.txt |
Show output and write to a file |
command | tee -a file.txt |
Show output and append to a file |
command | tee file1.txt file2.txt |
Write output to multiple files |
command | tee |
Pass output through unchanged |
command | tee /tmp/out.log >/dev/null |
Write to file without terminal output |
Common Options
Frequently used flags for tee.
| Option | Description |
|---|---|
-a, --append |
Append to files instead of overwriting |
-i, --ignore-interrupts |
Ignore interrupt signals |
--help |
Show help text |
--version |
Show version information |
Logging Command Output
Capture output while still seeing it live.
| Command | Description |
|---|---|
ping -c 4 linuxize.com | tee ping.log |
Save ping output to a log file |
journalctl -u nginx -n 50 | tee nginx.log |
Save recent service logs |
ls -la | tee listing.txt |
Save directory listing |
df -h | tee disk-usage.txt |
Save filesystem usage report |
free -h | tee memory.txt |
Save memory snapshot |
Append Mode
Keep history in log files with -a.
| Command | Description |
|---|---|
date | tee -a run.log |
Append current date to log |
echo "deploy started" | tee -a deploy.log |
Append status line |
./backup.sh 2>&1 | tee -a backup.log |
Append stdout and stderr |
tail -n 20 app.log | tee -a diagnostics.log |
Append recent log excerpt |
curl -I https://linuxize.com | tee -a headers.log |
Append response headers |
Pipelines and Filters
Combine tee with text-processing commands.
| Command | Description |
|---|---|
cat app.log | tee copy.log | grep ERROR |
Copy stream and filter errors |
ps aux | tee processes.txt | grep nginx |
Save process list and filter |
sort users.txt | tee sorted-users.txt | uniq |
Save sorted output and deduplicate |
dmesg | tee dmesg.txt | tail -n 30 |
Save kernel messages and inspect recent lines |
find /etc -maxdepth 1 -type f | tee etc-files.txt | wc -l |
Save file list and count lines |
Privileged Writes
Write to root-owned files safely.
| Command | Description |
|---|---|
echo "127.0.0.1 app.local" | sudo tee -a /etc/hosts |
Append host mapping as root |
printf "key=valuen" | sudo tee /etc/myapp.conf >/dev/null |
Overwrite config file as root |
cat config.conf | sudo tee /etc/myapp/config.conf >/dev/null |
Copy config into protected path |
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf |
Append kernel setting |
sudo sysctl -p | tee sysctl-apply.log |
Save reload output |
Troubleshooting
Quick checks for common tee issues.
| Issue | Check |
|---|---|
Permission denied |
Use sudo tee for root-owned targets instead of sudo echo ... > file |
| File content replaced unexpectedly | Use -a when you need append mode |
| No output on terminal | Remove >/dev/null if you want to see output |
| Missing errors in logs | Redirect stderr too: 2>&1 | tee file.log |
| Command hangs in pipeline | Check whether the upstream command runs continuously and needs manual stop |
Related Guides
Use these guides for deeper command coverage and workflow patterns.
| Guide | Description |
|---|---|
| tee Command in Linux | Full tee command tutorial |
| grep Command in Linux | Filter matching lines |
| sort Command in Linux | Sort text output |
| tail Command in Linux | Inspect and follow recent lines |
| head Command in Linux | Show first lines quickly |
| journalctl Command in Linux | Query and filter systemd logs |
| Bash Append to File | Append redirection patterns |
