Shell 输入/输出的重定向含义(>、>>、2>、2>>、&>、&>>、1>&2、2>&1)

简介: Shell 输入/输出的重定向含义(>、>>、2>、2>>、&>、&>>、1>&2、2>&1)

一、简介

  • 这里以 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>&22>&1
  • 1>&2 正确返回值传递给 2 输出通道 &2 表示 2 输出通道,如果此处错写成 1>2, 就表示把 1 输出重定向到文件 2中。
  • 2>&1 错误返回值传递给 1 输出通道,同样 &1 表示 1 输出通道。
$ ls ls.txt dzm.txt > ls.txt 2>&1
相关文章
|
7月前
|
Shell 数据处理
Shell编程中,输入/输出重定向和管道
Shell编程中,输入/输出重定向和管道
54 2
|
7月前
|
数据挖掘 Shell
在Shell中,标准输出重定向
在Shell中,标准输出重定向
80 1
|
2月前
|
Unix Shell Linux
Shell 输入/输出重定向
10月更文挑战第4天
33 8
|
6月前
|
Unix Shell Linux
Shell 重定向:控制数据流向的艺术
在Unix/Linux中,Shell提供输入输出重定向来灵活控制数据流。了解和运用重定向能提升Shell效率。标准输入(0)、输出(1)和错误输出(2)是基础。`>`用于覆盖输出,`>>`用于追加,而`<`用于改变输入源。错误输出可单独重定向,如`2>`或`2>>`。组合使用如`2>&1`可合并输出和错误到同一文件。输入重定向示例:`cat <<END`读取直到`END`。掌握这些,可高效管理命令输出。
65 0
|
7月前
|
Shell
shell 命令(一)概述【别名、 bash重定向 、定义变量】
shell 命令(一)概述【别名、 bash重定向 、定义变量】
68 0
|
7月前
|
Unix Shell Linux
在Unix/Linux Shell中,管道(`|`)和重定向
在Unix/Linux Shell中,管道(`|`)和重定向
102 1
|
7月前
|
Shell
在Shell中,您可以同时重定向标准输出(STDOUT)和错误输出(STDERR)
在Shell中,您可以同时重定向标准输出(STDOUT)和错误输出(STDERR)
637 1
|
7月前
|
Shell 数据处理
shell的重定向
shell的重定向
110 2
|
7月前
|
机器学习/深度学习 Unix Shell
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
134 0