Jump to content

Tee (command): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
No edit summary
Line 44: Line 44:
[[Category:Unix software]]
[[Category:Unix software]]
[[Category:Inter-process communication]]
[[Category:Inter-process communication]]

{{software-stub}}


[[ja:Tee (UNIX)]]
[[ja:Tee (UNIX)]]

Revision as of 20:04, 12 December 2007


tee is a Unix command that displays the output of a program and copies it into a file.

Syntax

tee [ -a ] [ -i ] [ File ... ]

Description

The tee command reads standard input, writes its content to standard output and simultaneously copies it into the specified file or files.

Flags

  • -a Adds the output to the end of File instead of writing over it.
  • -i Ignores interrupts.

Exit Status

This command returns the following exit values:

  • 0 The standard input was successfully copied to all output files.
  • >0 An error occurred.

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.

Examples

  • To view and save the output from a command at the same time:
    lint program.c | tee program.lint

This displays the standard output of the command lint program.c at the workstation, 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 save the output from a command to an existing file:
    lint program.c | tee -a program.lint

This displays the standard output of the lint program.c command at the workstation 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:
    echo "Body of file..." | sudo tee root_owned_file > /dev/null

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 /dev/null, we also suppress the mirrored output in the console.

See also