返回介绍

Tee 命令

发布于 2025-03-08 17:41:54 字数 2477 浏览 0 评论 0 收藏 0

Tee 命令

有时候我们需要把命令输出的内容保存为日志,还想着实时看到命令输出的内容,怎么办?

tee - read from standard input and write to standard output and files

从标准输入中读取,输出的同时并写入到文件中。

有点小牛 x.

举几个栗子:

1.输出的同时写入到文件中:

➤ for i in {1..9};do > $RANDOM; done #创建了 9 个文件
➤ ls #查看一下,的确创建成功了。
12681  16993  20566  21822  22742  25812  31954  5965  9458
➤ ls | tee files_of_here #然后用 tee 将输出保存到文件中
12681
16993
20566
21822
22742
25812
31954
5965
9458
files_of_here #这里有些奇怪,为什么 ls 的时候多了一个这样的文件呢?
➤ cat files_of_here 
12681
16993
20566
21822
22742
25812
31954
5965
9458
files_of_here # 解答上面的问题,因为 ls 和 tee 是同时进行的,
# 所以, tee 创建文件的时候, ls 还没读完整个目录中的文件名,
# 所以才会有一个 files_of_here 这样的文件,如果还不明白,看下面的例子。
➤

再一个例子:

➤ ls | tee 000 #我们创建一个 000 的文件
12681
16993
20566
21822
22742
25812
31954
5965
9458
files_of_here
➤ cat 000
12681
16993
20566
21822
22742
25812
31954
5965
9458
files_of_here
➤ ls
000  12681  16993  20566  21822  22742  25812  31954  5965  9458  files_of_here
➤

看出区别了么? 由于 000 数字比较小, ls 读取的时候先读的 12681 这个,这个时候 tee 又创建了一个 000 的文件,可惜 ls 不会再去读比 1 数字还小的文件了,也就读不到 000 了。

下面还有一个例子:

➤ dir
12681  16993  20566  21822  22742  25812  31954  5965  9458  files_of_here
➤ dir | tee 000
000  12681  16993  20566  21822  22742    25812  31954  5965  9458  files_of_here
➤ cat 000
000  12681  16993  20566  21822  22742    25812  31954  5965  9458  files_of_here
➤ ls | tee 00
00
000
12681
16993
20566
21822
22742
25812
31954
5965
9458
files_of_here
➤ ls | tee 0000000
00
000
12681
16993
20566
21822
22742
25812
31954
5965
9458
files_of_here
➤

感觉到奇怪了么? 想想这是为什么. 这里不讲 dir 和 ls(我也不会...)

2.tee 和管道

本来 tee 就是从管道中读取的,不过,他也能够输出到管道中,起到一个数据中转的作用:

➤ cat resout 
Give me a...
... flag!
➤ cat resout | tee content_of_resout | grep flag
... flag!
➤ cat content_of_resout 
Give me a...
... flag!
➤

3. teevim

如果用 vim 打开了一个没有写权限的文件,但是你已经写了很多东西,那该怎么办?

tee 来拯救你。

vim 中命令模式下:

:w !sudo tee %

更多的解释在这里: http://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-work

本书简介:

  • Linux 进阶技巧
  • 巧妙的命令组合
  • Bash 某些技巧
  • 一共一百零一个(包括充数的)
  • 最后有个奖励章(额外技巧)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文