tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上。
使用
1 | $ ll | tee test |
1 | $ cat test |
可以看到,ll
命令同时输出到 stdout
和文件 test
中
那它和 echo >
有什么区别呢
1 | $ echo `ll` > test |
除了直观的 \n
没有正确输出到文件外,最大的区别在于,如果当前用户没有对输出文件权限时,不能方便的进行输入
1 | $ sudo echo `ll` > /var/log/test |
>
会将命令分成两部分,sudo
并不能作用到 /var/log/test
中,使用 tee
就没问题
1 | $ ll | sudo tee /var/log/test |
参数
- -a:向文件中重定向时使用追加模式;
- -i:忽略中断(interrupt)信号。
-a
相当于 >>
可以将内容追加的方式输出到文件中
1 | $ ll | tee -a test |
更多实用
stdin
1 | $ ll | tee test || cat -n |
cat 输入
1 | $ cat <<EOF | tee test |
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章