linux tee命令

你想要输出的信息也同时能写入文件。这个时候,tee 命令就有其用武之地了。

NAME
tee - read from standard input and write to standard output and files

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

DESCRIPTION
Copy standard input to each FILE, and also to standard output.

 

tee:

-a, --append
append to the given FILEs, do not overwrite

-i, --ignore-interrupts
ignore interrupt signals

--help display this help and exit

--version
output version information and exit

If a FILE is -, copy again to standard output.

GNU coreutils online help: <http://www.gnu.org/software/coreutils/> Report tee translation bugs to <http://translationproject.org/team/>

AUTHOR
Written by Mike Parker, Richard M. Stallman, and David MacKenzie.

COPYRIGHT
Copyright ? 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
The full documentation for tee is maintained as a Texinfo manual. If the info and tee programs are properly installed at your site, the command

info coreutils ‘tee invocation‘

 

Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。

在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >a.txt,

这时我们就不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了。

tee命令读取标准输入,把这些内容同时输出到标准输出和(多个)文件中,tee命令可以重定向标准输出到多个文件。要注意的是:在使用管道线时,前一个命令的标准错误输出不会被tee读取。

tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

语法

tee [-ai][--help][--version][文件...]

参数

  • -a或--append  附加到既有文件的后面,而非覆盖它.
  • -i或--ignore-interrupts  忽略中断信号。
  • --help  在线帮助。
  • --version  显示版本信息。

 

 

tee最基本的用法就是显示输出结果并且保存内容到文件中。下面例子使用free命令显示系统内存使用信息,并使用tee命令将信息输出到屏幕,并保存到文件mem.txt中。

[root@localhost ~]# free -h | tee mem.txt
              total        used        free      shared  buff/cache   available
Mem:           1.8G        164M        1.2G        9.6M        387M        1.5G
Swap:          2.0G          0B        2.0G

可以查看一下mem.txt文件,可以看到输出内容已经保存到mem.txt里面了。

写入到多个文件

tee可以写入多个文件,每个文件之间使用空格分隔。

[root@localhost ~]# free -h | tee mem1.txt mem2.txt mem3.txt
              total        used        free      shared  buff/cache   available
Mem:           1.8G        165M        1.2G        9.6M        389M        1.5G
Swap:          2.0G          0B        2.0G

 

在已存在的文件底部追加内容

下面的例子使用选项-a在文件底部追加内容,不覆盖原有内容。

[root@localhost ~]# free -h | tee -a mem.txt
              total        used        free      shared  buff/cache   available
Mem:           1.8G        165M        1.2G        9.6M        389M        1.5G
Swap:          2.0G          0B        2.0G

可以看到,在mem.txt文件底部追加了新的内容。

如果不想在屏幕输出内容,可以使用>标准输出符号,重定向到/dev/null中:

[root@localhost ~]# free -h | tee -a mem.txt > /dev/null 


 如何让 tee 命令的输出内容直接作为另一个命令的输入内容?

使用 tee 命令,你不仅可以将输出内容写入文件,还可以把输出内容作为另一个命令的输入内容。比如说,下面的命令不仅会将文件名存入 output.txt 文件中,还会通过 wc 命令让你知道输入到 output.txt 中的文件数目。

  1. ls file* | tee output.txt | wc -l

 

linux tee命令

上一篇:Mac 安装Redis


下一篇:Chrome:仅仅打开了1个页面,为什么有4个进程?