双向重定向命令tee(转)

我想大家都用过Linux下的重定向命令”>”,该命令可以将原本打印到屏幕上的内容(包括标准输入和标准错误信息)重定向到指定文件中,屏幕上将不再输出打印信息。如果指定文件已经存在,文件中已存在的内容会被新重定向过来的内容覆盖,倘若不想覆盖,可以用追加重定向命令”>>”,新重定向过来的内容将被追加到已存在的文件中去。但是,如果你想将标准输入内容既显示到屏幕上又保存到文件中去,那就需要使用tee命令了。tee命令将标准输入复制到每个指定的文件,并显示到标准输出(屏幕)上。    

常用参数:

  1. -a:内容追加到给定的文件而非覆盖  
  2. -i:忽略终端信号  

 
应用实例:演示重定向命令”>”、追加重定向命令”>>”和双向重定向命令tee。

  1. trevor@trevor-PC:~/linux/linux100$ echo "Hello Linux" > 1  
  2. trevor@trevor-PC:~/linux/linux100$ cat 1  
  3. Hello Linux  
  4. trevor@trevor-PC:~/linux/linux100$ echo "Hello World" > 1  
  5. trevor@trevor-PC:~/linux/linux100$ cat 1  
  6. Hello World  
  7. trevor@trevor-PC:~/linux/linux100$ echo "Hello World" > 2  
  8. trevor@trevor-PC:~/linux/linux100$ cat 2  
  9. Hello World  
  10. trevor@trevor-PC:~/linux/linux100$ echo "Hello Linux" >> 2  
  11. trevor@trevor-PC:~/linux/linux100$ cat 2  
  12. Hello World  
  13. Hello Linux  
  14. trevor@trevor-PC:~/linux/linux100$ echo "Hello Linux" | tee 3  
  15. Hello Linux  
  16. trevor@trevor-PC:~/linux/linux100$ cat 3  
  17. Hello Linux  
  18. trevor@trevor-PC:~/linux/linux100$ echo "Hello World" | tee 3  
  19. Hello World  
  20. trevor@trevor-PC:~/linux/linux100$ cat 3  
  21. Hello World  
  22. trevor@trevor-PC:~/linux/linux100$ echo "Hello World" | tee 4  
  23. Hello World  
  24. trevor@trevor-PC:~/linux/linux100$ echo "Hello Linux" | tee -a 4  
  25. Hello Linux  
  26. trevor@trevor-PC:~/linux/linux100$ cat 4  
  27. Hello World  
  28. Hello Linux  
  29. trevor@trevor-PC:~/linux/linux100$  

 
Linux中0、1和2分别表示标准输入、标准输出和标准错误信息,这三个文件描述符之间可以现实重定向,比如将错误信息重定向到标准输出可以用“2>&1”来实现。值得注意的是,tee命令只捕捉标准输入的信息,标准错误信息无法捕捉。为了既捕获标准输入又捕捉标准错误信息,我们之需要把标准输入和标准错误信息都重定向到标准输出即可。

  1. cmd 2>&1 | tee logfile  

 
所以如果cmd命令或可执行程序中有标准错误输出,错误信息也能重定向到logfile文件中去。

 

from: http://www.cpplive.com/html/1555.html

转载于:https://www.cnblogs.com/nathaninchina/articles/2755583.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值