tee命令从标准输入读取内容并同时将标准输出写入一个或多个文件。tee最常用于通过管道与其他命令结合使用。

在本教程中,我们将介绍使用tee命令的基础知识。

Tee命令语法

在讨论如何使用tee命令之前,让我们先回顾一下基本语法:

tee [OPTIONS] [FILE]
  • OPTIONS
  • -a--append) - 追加到指定的文件,如果你不想文件原先的内容被覆盖使用这个选项。
  • -i--ignore-interrupts) - 忽略中断信号。
  • --help 查看所有可用的选项。
  • FILE_NAMES - 一个或多个文件。

如何使用Linux tee命令

tee命令的最基本用法是将另一个命令的标准输出(stdout)写入到文件。

在以下示例中,我们使用df命令获取有关文件系统上可用磁盘空间量的信息。并将标准输出通过管道传递到tee命令,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命令也可以写入多个文件。为此,只需在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结合,来写入其他用户拥有的文件。

只需在tee命令前加前缀sudo,如下所示:

echo "newline" | sudo tee -a /etc/file.conf

Tee将收到echo命令的输出,提升为sudo权限并写入该文件。

结论

到目前为止,您应该很好地理解如何使用Linux tee命令。如果您有任何问题或反馈,请随时发表评论。如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持