In computing, tee is a command in command-line interpreters using standard
streams which reads standard input and writes it to both standard output and
one or more files, effectively duplicating its input. It is primarily
used in conjunction with pipes and filters. The command is named after the
T-splitter used in plumbing. Description and syntax
tee is normally used to split the output of a program so that it can be both
displayed and saved in a file. The command can be used to capture
intermediate output before the data is altered by another command or program.
The tee command reads standard input, then writes its content to standard
output. It simultaneously copies the result into the specified file(s) or
variables. The syntax differs depending on the command's implementation:
= Unix-like = tee [ -a ] [ -i ] [ File ... ]
Arguments: File One or more files that will receive
the "tee-d" output. Flags:
-a Appends the output to the end of File instead of writing over it.
-i Ignores interrupts. The command returns the following exit
values: 0 The standard input was successfully
copied to all output files. >0 An error occurred.
Using process substitution lets more than one process read the standard
output of the originating process. Read this example from GNU Coreutils, tee
invocation. Note: If a write to any successfully
opened File operand is not successful, writes to other successfully opened File
operands and standard output will continue, but the exit value will be >0.
= 4DOS and 4NT = TEE [/A] file...
Arguments: file One or more files that will receive
the "tee'd" output. Flags:
/A Append the pipeline content to the output file(s) rather than overwriting
them. Note: When tee is used with a pipe, the
output of the previous command is written to a temporary file. When that
command finishes, tee reads the temporary file, displays the output, and
writes it to the file(s) given as command-line argument.
= Windows PowerShell = tee [-FilePath] [-InputObject ]
tee -Variable [-InputObject ] Arguments:
-InputObject Specifies the object input to the cmdlet. The parameter accepts
variables that contain the objects and commands or expression that return the
objects. -FilePath Specifies the file where the
cmdlet stores the object. The parameter accepts wildcard characters that resolve
to a single file. -Variable A reference to the input
objects will be assigned to the specified variable.
Note: tee is implemented as a ReadOnly command alias. The internal cmdlet name
is Microsoft.PowerShell.Utility\Tee-Object.
Examples = Unix-like =
To view and save the output from a command at the same time:
This displays the standard output of the command lint program.c at the computer,
and at the same time saves a copy of it in the file program.lint. If a file
named program.lint already exists, it is deleted and replaced.
To view and append the output from a command to an existing file:
This displays the standard output of the lint program.c command at the computer
and at the same time appends a copy of it to the end of the program.lint file.
If the program.lint file does not exist, it is created.
To allow escalation of permissions: This example shows tee being used to
bypass an inherent limitation in the sudo command. sudo is unable to pipe the
standard output to a file. By dumping its stdout stream into null, we also
suppress the mirrored output in the console.
= 4DOS and 4NT = This example searches the file
wikipedia.txt for any lines containing the string "4DOS", makes a copy of the
matching lines in 4DOS.txt, sorts the lines, and writes them to the output
file 4DOSsorted.txt: = Windows PowerShell =
To view and save the output from a command at the same time:
This displays the standard output of the command ipconfig at the console window,
and simultaneously saves a copy of it in the file OutputFile.txt.
To display and save all running processes, filtered so that only
programs starting with svc and owning more than 1000 handles are output:
This example shows that the piped input for tee can be filtered and that tee is
used to display that output, which is filtered again so that only processes
owning more than 1000 handles are displayed, and writes the unfiltered
output to the file ABC.txt. See also
GNU Core Utilities Pipeline
List of Unix programs References
tee: duplicate standard input – Commands & Utilities Reference, The Single UNIX®
Specification, Issue 7 from The Open Group
GNU tee manual External links
An introduction on Linux I/O Redirection "Linux I/O Redirection" with tee