将标准输出重定向到一个文件的同时并在屏幕上显示
2014-04-22 17:37
961 查看
一、标准输出+标准错误
输出标准输出和标准错误,同时保存到文件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.
原贴参考:http://www.linuxsir.org/bbs/printthread.php?t=100726&pp=15
输出标准输出和标准错误,同时保存到文件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.
原贴参考:http://www.linuxsir.org/bbs/printthread.php?t=100726&pp=15
相关文章推荐
- 将标准输出重定向到一个文件的同时并在屏幕上显示
- 将标准输出重定向到一个文件的同时并在屏幕上显示
- 从Shell脚本内部将所有标准输出及标准错误显示在屏幕并同时写入文件的方法
- 【转】从Shell脚本内部将所有标准输出及标准错误显示在屏幕并同时写入文件的方法
- 编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件
- 文件IO 打开一个文件,用write标准输出到屏幕
- python同时标准输出和重定向到文件保存
- 文件操作方法大全以及文件打开的其他一些模式sys.stdout.write()就是标准输出到你当前的屏幕 sys.stdout.flush()把内存立即显示到您当前的屏幕
- 用dup2将标准输出重定向到一个打开的文件,稍后,恢复标准输出
- 怎样将shell命令的输出信息同时显示在屏幕和保存到日志文件中
- 对一个标准的输入/输出窗口临时重定向到一个文件
- linux shell 屏幕显示stdout stderr的同时 分别重定向到文件
- 如何将bash同时重定向到标准输出和其他文件
- linux shell 屏幕显示stdout stderr的同时 分别重定向到文件
- 用mingw编译C++工程;程序里面的cout<<"aaa";cmd运行c++程序,aaa内容在控制台不显示,如何将aaa输出到控制台屏幕并将控制台内容写到一个文件中。
- Python 标准输出 sys.stdout 重定向,将屏幕输出内容输出到文件
- command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中
- 如何将标准输出到一个文件重定向从 Visual C/c + + 程序
- Linux重定向:将标准输出stdout和标准错误stderr重定向到一个文件
- Linux下Shell命令的输出信息同时显示在屏幕和保存到日志文件中