Linux 中 Tee 命令的用法详解

Linux 中 Tee 命令的用法详解
Linux 中 Tee 命令的用法详解

tee 命令从标准输入读取,并同时写入标准输出和一个或多个文件。tee主要通过管道与其他命令结合使用。

标准输入:这里的标准输入通常为键盘,但 Linux 也允许从文件获取标准输入。

标准输出:命令终端屏幕、控制台等。

在本文中,我们将介绍如何使用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 停止命令并退出时很有用。

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 权限写入文件。

使用 sudo tee 允许写入由其他用户所拥有的文件。

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/linux-tee-command/

发表评论

登录后才能评论