重定向错误
1.只重定向错误
- $ ls -al badfile 2> test4
- $ cat test4
- ls: cannot access badfile: No such file or directory
- $
混合使用 STDOUT和 STDERR 错误消息
2.重定向错误消息和正常输出
ls 命令尝试列出了 3 个文件(test、badtest 和 test2)的信息。正常输出被送往默认的 STDOUT文件描述符,也就是显示器。
由于该命令将文件描述符 2(STDERR)重定向到了一个输出文件,因此 shell 会将产生的所有错误消息直接送往指定文件。
- $ ls -al test badtest test2 2> test5
- -rw-rw-r-- 1 rich rich 158 2020-06-20 11:32 test2
- $ cat test5
- ls: cannot access test: No such file or directory
- ls: cannot access badtest: No such file or directory
- $
3.如果愿意,也可以将 STDERR 和 STDOUT 的输出重定向到同一个文件。
为此,bash shell提供了特殊的重定向符&>:
- $ ls -al test test2 test3 badtest &> test7
- $ cat test7
- ls: cannot access test: No such file or directory
- ls: cannot access badtest: No such file or directory
- -rw-rw-r-- 1 rich rich 158 2020-06-20 11:32 test2
- -rw-rw-r-- 1 rich rich 0 2020-06-20 11:33 test3
- $