Linux tee命令示例
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 ondev 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