一、简介
-
这里以
ls命令进行举例。$ ls -
总结:
一个
>的是每次覆盖导出结果,两个>的是在文件尾部追加导出结果。>:导出成功结果,不支持导出失败结果。2>:导出失败结果,不支持导出成功结果。$>:支持导出上面两种结果,混合导出。 -
如何区分是否导出成功?
在屏幕上输出了就是导出失败,没有输出则导出成功。
二、详细案例
-
>:将命令运行成功结果导出到指定文件,只能导出成功的结果,失败/错误的结果无法导出。$ ls > ls.txt测试失败结果:
ls.txt里面是空的,导入失败。
-
>>:将命令运行成功结果导出追加到指定文件尾部,只能导出成功的结果,失败/错误的结果无法导出。 -
2>:将命令运行失败/错误结果导出到指定文件,只能导出失败/错误的信息,成功的结果无法导出。测试成功结果:
ls.txt里面是空的,导入失败。
-
2>>:将命令运行失败/错误结果导出追加到指定文件尾部,只能导出失败/错误的信息,成功的结果无法导出,截图案例就不贴了。
-
&>:将命令运行成功/失败/错误结果导出到指定文件,支持任何状态的结果导出。
三、进阶用法
-
组合使用,成功的导出到
ls.txt,失败的导出到ls2.txt。$ ls ls.txt dzm.txt > ls.txt 2> ls2.txt -
组合使用,成功的导出到
ls.txt,失败的导出到ls.txt。-
1>通常可以省略成>,有了这些认识才能理解1>&2和2>&1。 -
1>&2正确返回值传递给2输出通道&2表示2输出通道,如果此处错写成1>2, 就表示把1输出重定向到文件2中。 -
2>&1错误返回值传递给1输出通道,同样&1表示1输出通道。
$ ls ls.txt dzm.txt > ls.txt 2>&1 -