重定向错误
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
$