将标准输出重定向到一个文件的同时并在屏幕上显示

转载 2007年10月06日 09:34:00
将标准输出重定向到一个文件的同时并在屏幕上显示
一、标准输出+标准错误
输出标准输出和标准错误,同时保存到文件logfile
方法一: <command> 2>&1 | tee <logfile>
[root@home root]# id das 2>&1 |tee logfile
id: das: No such user
[root@home root]# cat logfile
id: das: No such user
注释:管道的作用为把一个进程的标准输出作为另一个进程的标准输入。2>&1是把标准错误重定向到标准输出的副本一起输出。上面的命令,把标准输出和标准错误都输出作为tee命令的标准输入,tee的作用为把标准输入的内容拷贝到文件,并输出。

方法二:<command> 2> logfile | cat - logfile
[root@home root]# id abc 2>&1 |tee logfile
id: abc: No such user
[root@home root]# cat logfile
id: abc: No such user
注释:cat可以带多个文件参数,同时显示多个文件的内容。
"-"
代表标准输入,logfile是管道前保存的标准错误文本。
二:忽略标准输出
若想忽略标准输出,只输出标准错误并保存到文件logfile
命令如下:<command> 2>&1 >/dev/null | tee logfile
注释:1. 2>&1 将标准错误重定向到标准输出,注意,此时标准输出还没有被重定向
2. >/dev/null
等同于1>/dev/null /dev/null文件是一个空设备,类似于windows内的回收站,使用>/dev/null(等同于1>/dev/null)将标准输出重定向到/dev/null,即不显示标准输出的内容。所以这时的标准输出就仅变为重定向过来的标准错误了。

相反,如果两者颠倒顺序,那标准输出连同它的副本都会被重定向到/dev/null,这是一个逻辑问题。
[root@home root]# make >/dev/null 2>&1
[root@home root]# make 2>&1 >/dev/null
make: *** No targets specified and no makefile found.   Stop.
 

输出到屏幕和保存文件同时进行

使用tee可以一边显示的标准输出显示设备,可以一边输出到文本文件。 同时进行 $ adb shell logcat -v time | tee -a log6.log...
  • yagamil
  • yagamil
  • 2014年10月20日 12:52
  • 2246

将命令行工具的屏幕输出重定向到一个文件的方法

我最近发现了一个东西,现在拿出来与大家分享。话不多说,大家现在在cmd下执行这样一条命令:netstat -n>>d:/netstat.txt然后你们去d盘看看netstat.txt的内容。关于命...
  • jimmy_w
  • jimmy_w
  • 2007年01月14日 22:08
  • 6405

Linux 标准 输入 输出 重定向. printf 不输出到屏幕的解决办法

方法1: #include #include #include #include #include int main() { fflush(stdout); ...
  • wangxvfeng101
  • wangxvfeng101
  • 2013年09月11日 11:54
  • 16649

python同时标准输出和重定向到文件保存

先把代码贴出来,在http://www.crifan.com/summary_python_logging_module_usage/的基础上增加了部分内容#!/usr/bin/python # -*...
  • lv26230418
  • lv26230418
  • 2015年06月04日 10:14
  • 10100

python logging 替代print 输出内容到控制台和重定向到文件

在写程序的时候,尤其是大型的程序,在程序中加入日志系统是必不可少的,它能记录很多的信息。刚刚接触python的时候肯定都在用print来输出信息,这样是最简单的输出,正是因为这样,在调试的时候还要去逐...
  • z_johnny
  • z_johnny
  • 2016年02月25日 21:07
  • 7663

C语言如何使标准输出重定向到一个文件

函数名: freopen   功 能: 替换一个流,或者说重新分配文件指针,实现重定向。如果stream流已经打开,则先关闭该流。如果该流已经定向,则freopen将会清除该定向。此函数一般用于...
  • shenwansan_gz
  • shenwansan_gz
  • 2015年08月25日 17:53
  • 506

重定向之(不想把标准输出打印到屏幕)

最近做毕业设计,使用到madplay,但是用madplay总会在屏幕上打印出播放音频的信息,这里有一种办法来去除这种bug。 Linux常见特殊符号 Linux 1.     > 重定向输出...
  • WXXGoodJob
  • WXXGoodJob
  • 2017年04月01日 10:57
  • 469

Linux 标准 输入 输出 重定向. printf 不输出到屏幕的解决办法

方法1:   #include    #include    #include    #include    #include          int main()   {       fflush...
  • bingqingsuimeng
  • bingqingsuimeng
  • 2016年05月20日 09:09
  • 3018

python同时标准输出和重定向到文件保存

先把代码贴出来,在http://www.crifan.com/summary_python_logging_module_usage/的基础上增加了部分内容#!/usr/bin/python # -*...
  • lv26230418
  • lv26230418
  • 2015年06月04日 10:14
  • 10100

linux shell 屏幕显示stdout stderr的同时 分别重定向到文件

I'm assuming you want to still see STDERR and STDOUT on the terminal. You could go for Josh Kelley's...
  • LEEtcWorks
  • LEEtcWorks
  • 2013年12月04日 22:40
  • 4205
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将标准输出重定向到一个文件的同时并在屏幕上显示
举报原因:
原因补充:

(最多只允许输入30个字)