[ad_1]
当您在终端上运行基本命令时,输出通常会打印到终端,即标准输出。 但是,如果您还可以将输出保存在文件中并将其打印为标准输出呢? 这就是 tee 命令所做的。 Linux tee 命令从 stdin(标准输入)读取,然后写入 stdout(标准输出)以及一个文件或多个文件。
tee 命令的基本语法
tee 命令采用以下语法。
$ 命令 | 球座 [ options ] 文件
现在让我们对 tee 命令的一些示例用法进行示例。
tee 命令的基本使用
假设我们要使用以下命令打印内存和交换使用情况 自由 命令并将输出保存在一个名为 memory_usage.txt. tee 命令将按如下方式调用。
$ free -h | tee memory_usage.txt
tee 命令从命令中读取,将输出保存到 memory_usage.txt 文件,然后将其打印为标准输出。
确认输出已保存到 memory_usage.txt 文件运行 cat 命令,如图所示。
$ cat memory_usage.txt
将输出写入多个文件
此外,您可以将输出保存到多个文件,如图所示
$ 命令 | 球座 [ options ] 文件 1 文件 2 …
在下面的命令中,字符串 “嘿,欢迎来到 Linux” 保存在两个文本文件中: 文件1.txt 和 文件2.txt
$ echo Hey, Welcome to Linux | tee file1.txt file2.txt
将内容附加到文件
通常, tee 命令会覆盖文件,这并不总是可取的,因为它可以擦除至关重要的现有数据。 值得庆幸的是,您可以使用 -一种 将文本附加到文件的选项。 让我们来测试一下。
首先,我们将编写输出 正常运行时间 命令给 统计信息.txt 文件如图所示。
$ 正常运行时间 | 三通统计.txt
使用 猫 命令来验证这一点。
$ cat stats.txt
接下来,我们将附加输出 免费 -h 命令将我们的内存和交换使用情况打印到文件中。
$ free -h | tee -a stats.txt
再次验证内容 统计信息.txt 文件。 这一次,该文件将包含两个命令的输出,如下面的屏幕截图所示。 这是因为我们附加了输出 免费 -h 命令给 统计信息.txt 文件,因此现有文本不受影响。
抑制 tee 命令的输出
如果你不希望有输出 球座 命令打印到标准输出,您可以将其重定向到 /开发/空 这是一种丢弃信息的特殊设备。
以下面的例子为例,我们正在打印输出 df -Th 命令到文本文件,但抑制终端上的输出。
$ df -Th | tee disk_usage.txt >/dev/null
让 tee 命令忽略中断
有时,您可能想要停止持续运行的命令。 发生这种情况时,您可能会考虑让 tee 命令即使在程序中断后也能正常退出。 要完成此操作,请使用 -一世 或者 –ignore-interrupts 显示的语法中提供的选项。
$ 命令 | tee -i 文件名
下面的 ping 命令不断向 Google 的 DNS ( 8.8.8.8 ) 发送 ping 请求。 我们在连续 4 次 ping 请求后中断了命令。 为了 球座 命令优雅退出,调用 -一世 选项。
$ ping 8.8.8.8 | tee -i ping_stats.txt
没有 -一世 选项,则不会打印统计信息的输出和摘要。
使用 tee 命令 sudo
修改 root 用户或其他登录用户拥有的文件时,只需使用 tee 命令,而无需调用 sudo 命令将产生错误。
在下面的示例中,我们正在创建一个名为的新存储库 anydesk-stable.list 对于 AnyDesk 应用程序 /etc/apt/sources.list.d 为 root 用户保留的路径。
$ echo "deb https://deb.anydesk.com/ all main" | tee /etc/apt/sources.list.d/anydesk-stable.list
正如预期的那样,我们遇到了“权限被拒绝”错误,因为我们没有在该路径中创建或修改文件的权限。
解决方法是先 球座 与 sudo 命令如图所示。
$ echo "deb https://deb.anydesk.com/ all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list
这种情况下,放置后命令成功 sudo 开球前。
获取有关 tee 命令的帮助
有关使用 tee 命令的更多命令选项和帮助,请运行以下命令。
$ tee --help
此外,如图所示浏览手册页
$ man tee
要检查版本,请运行:
$ tee --version
概括
这就是 Linux tee 命令的全部内容。 值得注意的是,该命令从标准输入 (stdin) 读取,然后写入标准输出 (stdout) 和文件。
[ad_2]