tee.1p (5901B)
- '\" et
- .TH TEE "1P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
- .\"
- .SH PROLOG
- This manual page is part of the POSIX Programmer's Manual.
- The Linux implementation of this interface may differ (consult
- the corresponding Linux manual page for details of Linux behavior),
- or the interface may not be implemented on Linux.
- .\"
- .SH NAME
- tee
- \(em duplicate standard input
- .SH SYNOPSIS
- .LP
- .nf
- tee \fB[\fR-ai\fB] [\fIfile\fR...\fB]\fR
- .fi
- .SH DESCRIPTION
- The
- .IR tee
- utility shall copy standard input to standard output, making a copy in
- zero or more files. The
- .IR tee
- utility shall not buffer output.
- .P
- If the
- .BR \-a
- option is not specified, output files shall be written (see
- .IR "Section 1.1.1.4" ", " "File Read" ", " "Write" ", " "and Creation".
- .SH OPTIONS
- The
- .IR tee
- utility shall conform to the Base Definitions volume of POSIX.1\(hy2017,
- .IR "Section 12.2" ", " "Utility Syntax Guidelines".
- .P
- The following options shall be supported:
- .IP "\fB\-a\fP" 10
- Append the output to the files.
- .IP "\fB\-i\fP" 10
- Ignore the SIGINT signal.
- .SH OPERANDS
- The following operands shall be supported:
- .IP "\fIfile\fR" 10
- A pathname of an output file. If a
- .IR file
- operand is
- .BR '\-' ,
- it shall refer to a file named
- .BR \- ;
- implementations shall not treat it as meaning standard output.
- Processing of at least 13
- .IR file
- operands shall be supported.
- .SH STDIN
- The standard input can be of any type.
- .SH "INPUT FILES"
- None.
- .SH "ENVIRONMENT VARIABLES"
- The following environment variables shall affect the execution of
- .IR tee :
- .IP "\fILANG\fP" 10
- Provide a default value for the internationalization variables that are
- unset or null. (See the Base Definitions volume of POSIX.1\(hy2017,
- .IR "Section 8.2" ", " "Internationalization Variables"
- for the precedence of internationalization variables used to determine
- the values of locale categories.)
- .IP "\fILC_ALL\fP" 10
- If set to a non-empty string value, override the values of all the
- other internationalization variables.
- .IP "\fILC_CTYPE\fP" 10
- Determine the locale for the interpretation of sequences of bytes of
- text data as characters (for example, single-byte as opposed to
- multi-byte characters in arguments).
- .IP "\fILC_MESSAGES\fP" 10
- .br
- Determine the locale that should be used to affect the format and
- contents of diagnostic messages written to standard error.
- .IP "\fINLSPATH\fP" 10
- Determine the location of message catalogs for the processing of
- .IR LC_MESSAGES .
- .SH "ASYNCHRONOUS EVENTS"
- Default, except that if the
- .BR \-i
- option was specified, SIGINT shall be ignored.
- .SH STDOUT
- The standard output shall be a copy of the standard input.
- .SH STDERR
- The standard error shall be used only for diagnostic messages.
- .SH "OUTPUT FILES"
- If any
- .IR file
- operands are specified, the standard input shall be copied to each
- named file.
- .SH "EXTENDED DESCRIPTION"
- None.
- .SH "EXIT STATUS"
- The following exit values shall be returned:
- .IP "\00" 6
- The standard input was successfully copied to all output files.
- .IP >0 6
- An error occurred.
- .SH "CONSEQUENCES OF ERRORS"
- If a write to any successfully opened
- .IR file
- operand fails, writes to other successfully opened
- .IR file
- operands and standard output shall continue, but the exit status shall
- be non-zero. Otherwise, the default actions specified in
- .IR "Section 1.4" ", " "Utility Description Defaults"
- apply.
- .LP
- .IR "The following sections are informative."
- .SH "APPLICATION USAGE"
- The
- .IR tee
- utility is usually used in a pipeline, to make a copy of the output of
- some utility.
- .P
- The
- .IR file
- operand is technically optional, but
- .IR tee
- is no more useful than
- .IR cat
- when none is specified.
- .SH EXAMPLES
- Save an unsorted intermediate form of the data in a pipeline:
- .sp
- .RS 4
- .nf
- \&... | tee unsorted | sort > sorted
- .fi
- .P
- .RE
- .SH RATIONALE
- The buffering requirement means that
- .IR tee
- is not allowed to use ISO\ C standard fully buffered or line-buffered writes. It
- does not mean that
- .IR tee
- has to do 1-byte reads followed by 1-byte writes.
- .P
- It should be noted that early versions of BSD ignore any invalid
- options and accept a single
- .BR '\-'
- as an alternative to
- .BR \-i .
- They also print a message if unable to open a file:
- .sp
- .RS 4
- .nf
- "tee: cannot access %s\en", <\fIpathname\fP>
- .fi
- .P
- .RE
- .P
- Historical implementations ignore write errors. This is explicitly not
- permitted by this volume of POSIX.1\(hy2017.
- .P
- Some historical implementations use O_APPEND when providing append
- mode; others use the
- \fIlseek\fR()
- function to seek to the end-of-file after opening the file without
- O_APPEND. This volume of POSIX.1\(hy2017 requires functionality equivalent to using O_APPEND;
- see
- .IR "Section 1.1.1.4" ", " "File Read" ", " "Write" ", " "and Creation".
- .SH "FUTURE DIRECTIONS"
- None.
- .SH "SEE ALSO"
- .IR "Chapter 1" ", " "Introduction",
- .IR "\fIcat\fR\^"
- .P
- The Base Definitions volume of POSIX.1\(hy2017,
- .IR "Chapter 8" ", " "Environment Variables",
- .IR "Section 12.2" ", " "Utility Syntax Guidelines"
- .P
- The System Interfaces volume of POSIX.1\(hy2017,
- .IR "\fIlseek\fR\^(\|)"
- .\"
- .SH COPYRIGHT
- Portions of this text are reprinted and reproduced in electronic form
- from IEEE Std 1003.1-2017, Standard for Information Technology
- -- Portable Operating System Interface (POSIX), The Open Group Base
- Specifications Issue 7, 2018 Edition,
- Copyright (C) 2018 by the Institute of
- Electrical and Electronics Engineers, Inc and The Open Group.
- In the event of any discrepancy between this version and the original IEEE and
- The Open Group Standard, the original IEEE and The Open Group Standard
- is the referee document. The original Standard can be obtained online at
- http://www.opengroup.org/unix/online.html .
- .PP
- Any typographical or formatting errors that appear
- in this page are most likely
- to have been introduced during the conversion of the source files to
- man page format. To report such errors, see
- https://www.kernel.org/doc/man-pages/reporting_bugs.html .