tee命令从标准输入读取内容并同时将标准输出写入一个或多个文件。tee最常用于通过管道与其他命令结合使用。
在本教程中,我们将说明如何使用tee命令和常见的选项。这其中包括使用tee写入多个文件,追加到文件,忽略中断,隐藏tee的终端输出,tee与sudo结合使用。
在讨论如何使用tee命令之前,让我们先回顾一下基本语法,这是tee命令的基本语法形式tee [OPTIONS] [FILE]
。
FILE_NAMES
可以是一个或多个文件,OPTIONS
是tee的选项,以下是一些常用的选项。
-a
/--append
表示追加到指定的文件,如果你不想文件的内容被覆盖请使用这个选项。在没有该选项时,tee将会覆盖已存在的文件的内容。
-i
/--ignore-interrupts
表示 忽略中断信号,也就是说会忽略ctrl+c
。--help
查看所有可用的选项。
tee命令的最基本用法是将另一个命令的标准输出stdout
写入到文件。除了写入单个文件之外tee也可以写入多个文件。
如你需要写入到多个文件,只需在tee命令之后指定多个文件名并由空格分隔的文件名。
如果您不想tee
写入到标准输出,通常是终端的显示输出,您只需将其重定向到/dev/null
。
您可以使用cat命令验证disk_usage.txt
文件的内容。
#写入到多个文件中
echo "myfreax" | tee file1 file2
#追加内容到文件
command | tee -a file.out
#忽略中断命令
command | tee -i file.out
#隐藏tee的标准输出
command | tee file.out >/dev/null
tee与sudo结合使用
假设你想使用sudo写一个root用户拥有的文件。你可能会运行命令sudo echo "newline" > /etc/file.conf
。
你将会收到权限拒绝的错误消息bash: /etc/file.conf: Permission denied
。之所以会失败是因为sudo不执行输出的重定向,它将作为非root用户写入。
您可以将tee
命令与sudo结合,来写入其他用户拥有的文件。只需在tee
命令前加前缀sudo
,tee将收到echo的标准输出,提升为root权限并写入指定文件。
echo "newline" | sudo tee -a /etc/file.conf
结论
到目前为止,您应该很好地理解如何使用tee命令。如果您有任何问题或反馈。