ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【鸟哥 Linux 10.5】数据流重导向

2022-08-16 22:35:26  阅读:244  来源: 互联网

标签:输出 10.5 重定向 bashrc list cat 标准 Linux 鸟哥


【鸟哥 Linux 10.5】数据流重导向

什么是数据流重导向?

  • 执行命令的时候会用标准输入读取必需数据,如果程序运行正确,使用标准输出输出结果,如果程序运行错误,使用标准错误输出输出错误。

  • 使用数据流重导向去分流不同的数据。

使用数据流重导向来分流不同输出

  • 必须使用特殊字符来标识不同的流。
  1. 标准输入(stdin),代码为0,使用<或者<<

  2. 标准输出(stdout),代码为1,使用>或者>>(实际上是1>或者1>>,这里的1可以省略)

  3. 标准错误输出(stderrout),代码为2,使用2>或者2>>

输出重定向的例子

ll / 1>> ~/rootfile # 将ll / 标准输出追加到~/rootfile中
ll / >> ~/rootfile # 将ll / 标准输出追加到~/rootfile中

ll / 2> ~/rootfile # 将ll / 标准错误输出覆盖到~/rootfile中

# 将find /home -name .bashrc 标准输出覆盖到list_right中
# 将find /home -name .bashrc 标准错误输出覆盖到list_error中
find /home -name .bashrc > list_right 2> list_error

# 将多个输出重定向到同一个文件
# 将find / -name .bashrc 标准输出覆盖到list文件中
# 将find / -name .bashrc 标准错误输出重定向到标准输出(1号)中,由于标准输出已经重定向到list中了,所以标准错误输出也会输出到list文件中
find / -name .bashrc 1> list 2>&1
  • 上例中2>&1是指将标准错误输出重定向到标准输出,那么当然也可以反过来使用1>&2将标准输出重定向到标准错误输出

/dev/null黑洞文件

  • 吃掉所有重定向到文件的数据流

输入的重定向

  • 来看一个cat快速创建文件的例子:

# 使用cat来快速建立文件
cat > catfile # 执行之后输入需要写入文件的内容,^d结束
  • 以下内容截取自cat命令的manpage
DESCRIPTION
       Concatenate FILE(s) to standard output.

       With no FILE, or when FILE is -, read standard input.
  • 当cat不接收文件的时候,会接收stdin作为输出,将这些输出重定向到catfile中,相当于通过键盘输入快速创建了一个文本文件。

  • 再来看一个例子:
#使用文件来快速创建相同内容的文件
cat > catfile < ~/.bashrc
  • 以上脚本表达了以下意思:
  1. cat的标准输出被重定向到catfile中
  2. cat的标准输入被重定向到~/.bashrc中
  3. 综合来说,cat接收~/.bashrc的文件内容作为输入,并将内容输出到catfile中。

  • 最后一个例子:
# 通过<<指定文件结束符
cat > catfile << "eof" # 这下不需要^d了,输完所有内容,输入一个eof即可结束

命令执行的逻辑分隔符

指令 说明
cmd1 && cmd2 cmd1执行正确,才执行cmd2
cmd1 | cmd2
cmd1;cmd2 cmd1和cmd2无关联的执行
  • 需要注意的是,上述指令执行正确与否的判断都是根据$?这个回传值来的

标签:输出,10.5,重定向,bashrc,list,cat,标准,Linux,鸟哥
来源: https://www.cnblogs.com/LeisureLak/p/16593206.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有