Linux系统之tee命令的基本使用
一、tee命令介绍
二、tee命令的使用帮助
2.1 tee命令的help帮助
[root@RockyLinux-server001 ~]# tee --help
用法:tee [选项]... [文件]...
将标准输入复制到每个指定文件,并显示到标准输出。
-a, --append 内容追加到给定的文件而非覆盖
-i, --ignore-interrupts 忽略中断信号
-p 对写入非管道的行为排查错误
--output-error[=模式] 设置写入出错时的行为。见下面“模式”部分
--help 显示此帮助信息并退出
--version 显示版本信息并退出
模式确定向输出写入出错时的行为:
'warn' 对向任何文件输出出错的情况进行诊断
'warn-nopipe' 对向除了管道以外的任何文件输出出错的情况进行诊断
'exit' 一旦输出出错,则退出程序
'exit-nopipe' 一旦输出出错且非管道,则退出程序
-p 选项的默认模式是“warn-nopipe”。
当 --output-error 没有给出时,默认的操作是在向管道写入出错时立刻退出,
且在向非管道写入出错时对问题进行诊断。
GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告任何翻译错误
完整文档 <https://www.gnu.org/software/coreutils/tee>
或者在本地使用:info '(coreutils) tee invocation'
2.2 tee命令帮助解释
- 基本格式:
command | tee [options] outputfile
- 使用帮助:
默认情况下,-p
选项的模式是 'warn-nopipe'
。当没有指定 --output-error
时,默认操作是在向管道写入出错时立刻退出,并在向非管道写入出错时对问题进行诊断。
三、tee命令的基本使用
3.1 写入文件
[root@RockyLinux-server001 ~]# ls | tee test.txt
aa01.txt
aa02.txt
aa03.txt
aa04.txt
aa05.txt
aa06.txt
anaconda-ks.cfg
test.txt
3.2 追加文件
cat abc.txt | tee -a abc.txt
[root@RockyLinux-server001 ~]# echo hello > abc.txt
[root@RockyLinux-server001 ~]# cat abc.txt | tee -a abc.txt
hello
[root@RockyLinux-server001 ~]# cat abc.txt
hello
hello
3.3 结合sudo命令
echo "data" | sudo tee /path/to/protected/file
3.4 结合EOF使用
sudo tee mytest.aa <<EOF
aa
bb
cc
dd
ee
EOF
四、注意事项
-
使用
sudo tee
而不是sudo
与echo
结合来确保整个命令链具有正确的权限,避免权限不足的问题。 -
默认情况下
tee
会覆盖目标文件内容,使用-a
选项可改为追加内容到文件末尾而不破坏原有数据。 -
当使用
tee
处理敏感信息时,注意不要将敏感数据无意中写入日志或不安全的文件位置。 -
结合
-p
选项可以使得tee
在遇到写入错误时输出诊断信息,有助于故障排查。 -
使用
--output-error
可以更细粒度地控制tee
在面对不同类型的写入错误时的行为。