linux命令之tee,linux tee命令

tee命令读取标准输入并将其写入标准输出和一个或多个文件。该命令以管道中使用的T分隔器命名。它基本上破坏了程序的输出,因此它既可以显示又可以保存在文件中

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

9a3144521ddeb8941a6472532d8c5836.gif

tee 命令语法

该tee命令的语法如下:

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

您可以disk_usage.txt使用cat命令查看文件的内容。

写入多个文件

该tee命令还可以写入多个文件。为此,请指定以空格分隔的文件列表作为参数:

command | tee file1.out file2.out file3.out

附加到文件

默认情况下,该tee命令将覆盖指定的文件。使用-a(--append)选项将输出附加到文件:

command | tee -a file.out

忽略中断

要忽略中断,请使用-i (–ignore-interrupts ) option. This is useful when stopping the command during execution withCTRL + C and wanttee正常退出。

command | tee -i file.out

隐藏输出

如果您不想tee写入标准输出,则可以将其重定向到/dev/null:

command | tee file.out >/dev/null

与sudo结合使用tee

假设您想以sudo用户身份写入root拥有的文件。以下命令将失败,因为sudo不执行输出的重定向。重定向以非特权用户身份执行。

sudo echo "newline" > /etc/file.conf

输出将如下所示:

bash: /etc/file.conf: Permission denied

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

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

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

使用tee会同sudo让你写由其他用户所拥有的文件。

结论

该tee命令从标准输入读取并将其写入标准输出和一个或多个文件。

5.0

01

Post Views:

333

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值