Linux tee命令示例

linux

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

在本教程中,我们将说明如何使用tee命令和常见的选项。这其中包括使用tee写入多个文件,追加到文件,忽略中断,隐藏tee的终端输出,tee与sudo结合使用。

tee命令语法

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

tee [OPTIONS] [FILE]

这里说明一下常用的选项:-a--append) - 追加到指定的文件,如果你不想文件的内容被覆盖请使用这个选项。-i--ignore-interrupts) - 忽略中断信号。--help 查看所有可用的选项。FILE_NAMES - 一个或多个文件。

如何使用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的终端输出

如果您不想tee写入到标准输出(屏幕上的显示输出),您只需将其重定向到/dev/null

command | tee file.out >/dev/null

tee与sudo结合使用

假设你想使用sudo写一个root用户拥有的文件。以下命令将失败,因为sudo不执行输出的重定向,它将作为非root用户写入。

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命令的输出,提升为root权限并写入该文件。

结论

到目前为止,您应该很好地理解如何使用tee命令。如果您有任何问题或反馈。

以上是 Linux tee命令示例 的全部内容, 来源链接: utcz.com/z/506965.html

回到顶部