Linux的Tee命令及示例
评论 0
浏览 0
2019-01-13
tee
命令从标准输入读取数据,并同时写入标准输出和一个或多个文件。tee
主要是通过管道与其他命令结合使用。
在这篇文章中,我们将介绍使用tee
命令的基本知识。
tee
命令的句法
tee
命令的句法如下。
tee [OPTIONS] [FILE]
OPTIONS
:-a
(--append
) - 不要覆盖文件,而是追加到给定的文件中。-i
(--ignore-interrupts
) - 忽略中断信号。- 使用
tee --help
来查看所有可用的选项。
FILE_NAMES
- 一个或多个文件。每个文件的输出数据都被写入其中。
如何使用 tee
命令
tee
命令最基本的用法是显示一个程序的标准输出(stdout
),并将其写入文件中。
在下面的例子中,我们使用df
命令来获得关于文件系统中可用磁盘空间数量的信息。输出被输送到tee
命令,该命令将输出显示到终端,并将相同的信息写入文件disk_usage.txt
。
df -h | tee disk_usage.txt
输出
Filesystem Size Used Avail Use% Mounted on
dev 7.8G 0 7.8G 0% /dev
run 7.9G 1.8M 7.9G 1% /run
/dev/nvme0n1p3 212G 159G 43G 79% /
tmpfs 7.9G 357M 7.5G 5% /dev/shm
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
tmpfs 7.9G 15M 7.9G 1% /tmp
/dev/nvme0n1p1 511M 107M 405M 21% /boot
/dev/sda1 459G 165G 271G 38% /data
tmpfs 1.6G 16K 1.6G 1% /run/user/120
你可以使用cat命令来查看disk_usage.txt
文件的内容。
写到多个文件中
tee
命令也可以写到多个文件。要做到这一点,需要指定一个用空格分隔的文件列表作为参数。
command | tee file1.out file2.out file3.out
追加到文件中
默认情况下,tee
命令将覆盖指定的文件。使用-a
(--append
)选项,可以将输出结果附加到文件中。
command | tee -a file.out
拒绝接受中断
要忽略中断,请使用-i
(--ignore-interrupts
)选项。当用CTRL+C
在执行过程中停止命令,并希望tee
能优雅地退出时,这很有用。
command | tee -i file.out
隐藏输出内容
如果你不想让tee
写到标准输出,你可以把它重定向到/dev/null
。
command | tee file.out >/dev/null
将tee与sudo结合起来使用
假设你想写一个由sudo用户root拥有的文件。下面的命令会失败,因为输出的重定向不是由sudo执行的。重定向是作为非特权用户执行的。
sudo echo "newline" > /etc/file.conf
输出结果将看起来像这样。
输出
bash: /etc/file.conf: Permission denied
只需在tee
命令前预留sudo
,如下图所示。
echo "newline" | sudo tee -a /etc/file.conf
tee
将收到echo命令的输出,提升到sudo权限,并写入文件中。
将tee
与sudo
结合起来使用,可以让你写到其他用户拥有的文件。
总结
tee
命令从标准输入中读取,并将其写入标准输出和一个或多个文件中。
如果你有任何问题或反馈意见,请随时留言。
0 个评论