什么是标准输出和错误输出?
比如我们现在有一个文件,我用ls -l查看它的创建时间、文件大小、权限等信息:
$ ls -l test
-rw-rw-rw- 1 yf yf 0 Jun 9 10:27 test #这一行就是标准输出信息
反之,如果我查看的是一个不存在的文件:
$ ls -l file
ls: cannot access 'file': No such file or directory #这一行就是错误输出,也就是我们常说的“报错”
什么是输出重定向?
输出重定向,就是上面执行代码后,屏幕上出现的文字存到一个文件里。这里有几种重定向的符号:
![](https://img.haomeiwen.com/i18922188/369f24f6e924c2fa.png)
比如把上面的屏幕输出存到一个文件里:
$ ls -l file.txt > logout.txt #重定向后,屏幕就不会再有输出了
$ cat logout.txt
-rw-rw-rw- 1 yf yf 0 Jun 9 10:27 file.txt
$ ls -l file2.txt 2> logout_error.txt #把错误输出存到一个文件里
$ cat logout_error.txt
ls: cannot access 'file2.txt': No such file or directory
在平时我们进行数据分析的时候,如果某个软件运行会产生大量的输出信息,而你又不想看见,你就可以用重定向把这些信息都存到一个文件里;另外,错误输出的重定向方便我们在程序运行错误的时候,查找是哪里出了问题。有的软件运行的时候,标准输出和错误输出全都混在一起,查错非常的不方便,用重定向这个方法可以明显的提高工作效率。
关于上面表格里最后一种用法:2>&1,这个命令是要写在最后的。
例如:command > logoutfile 2>&1
具体原因请看:linux shell 中"2>&1"含义
网友评论