- 简介
- 第一章 - 关于 CD
- 第二章 - 基本命令
- Hack-7 Grep
- Hack-8 Grep 与正则表达式
- Hack-9 Find 命令
- Hak-10 重定向
- Hack-11 Join 命令
- Hack-12 Tr 命令
- Hack-13 Xargs 命令
- Hack-14 Sort 命令
- Hack-15 Uniq 命令
- Hack-16 Cut 命令
- Hack-17 Stat 命令
- Hack-18 Diff 命令
- Hack-19 Ac 命令
- Hack-20 让命令在后台执行
- Hack-21 Sed 替换基础
- Hack-22 Awk 简介
- Hack-23 VIM 基本入门
- Hack-24 Chmod 命令
- Hack-25 Tail -f -f
- Hack-26 Less 命令
- Hack-27 Wget 下载器
- 第三章 - SSH 技巧
- 第四章 - 日期设置
- 第五章 - PS* 介绍
- 第六章 - 压缩和打包
- 第七章 - 历史命令
- 第八章 - 系统任务管理
- 第九章 - 安装软件
- 第十章 - LAMP 套装
- 第十一章 - Bash 脚本
- 第十二章 - 系统性能监控
- 第十三章 - 额外的技巧
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Tee 命令
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. tee
和 vim
如果用 vim
打开了一个没有写权限的文件,但是你已经写了很多东西,那该怎么办?
tee
来拯救你。
在 vim
中命令模式下:
:w !sudo tee %
更多的解释在这里: http://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-work
本书简介:
- Linux 进阶技巧
- 巧妙的命令组合
- Bash 某些技巧
- 一共一百零一个(包括充数的)
- 最后有个奖励章(额外技巧)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论