你可能遇到了如下问题:
[root@localhost shell]# ls -l badfile > error.logls: 无法访问badfile: 没有那个文件或目录[root@localhost shell]# cat error.log
当命令生成错误消息时,shell并未将错误消息重定向到输出重定向文件。shell创建了输出重
定向文件,但错误消息却显示在了显示器屏幕上。注意,在显示test3文件的内容时并没有任何错
误。test3文件创建成功了,只是里面是空的。
在项目中,我们经常需要查看日志文件的错误信息,来进行排查问题,也就是说,我们需要解决如何把错误信息保存到文件中,而不是默认显示在显示器上。
只重定向错误
STDERR文件描述符为2,我们可以在重定向符号前加上2,如下:
[root@localhost shell]# ls -l badfile 2> nginx.log[root@localhost shell]# cat nginx.log ls: 无法访问badfile: 没有那个文件或目录
为什么说如上只是重定向错误呢,为了证明,我们列出一个已存在加不存在的文件
[root@localhost shell]# lserror.log hello.txt nginx.log test.sh[root@localhost shell]# ls -l hello.txt badfile 2> apache.log-rw-r--r-- 1 root root 36 1月 11 08:48 hello.txt[root@local