Search code examples
unixtee

Unix: confusing use of the 'tee' command


The manual states that tee is a "pipe fitting"-tool. The cases [1] confuse me:

1. case

echo "foo bar" | sudo tee -a /path/to/some/file

2. case

:w !sudo tee %

It is hard to understand the logic of tee from the cases. How does tee work?


Solution

  • 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

    tee [OPTION]... [FILE]...
    

    For instance

    tee [ -a ] [ -i ]... [ File ]...
    
    • -a Appends the output to the end of File instead of writing over it.

    • -i Ignores interrupts.

    enter image description here

    With sudo and appending to the file with your example in the question

    ls -l | sudo tee -a file.txt