Linux:输入输出重定向

标准输入     (stdin) 代码为 0 ,使用 < <<

标准输出     (stdout):代码为 1 ,使用 > >>

标准错误输出(stderr):代码为 2 ,使用 2> 2>>

输入重定向中用到的符号及其作用

输出重定向中用到的符号及其作用

对于重定向中的标准输出模式,可以省略文件描述符 1 不写,而错误输出模式的文件描述符 2
是必须要写的。

&表示正确输出和错误输出

&>file是一种特殊的用法,也可以写成>&file,二者的意思完全相同

 

 

1> :以覆盖的方法将『正确的数据』输出到指定的文件或装置上;

1>>:以累加的方法将『正确的数据』输出到指定的文件或装置上;

2> :以覆盖的方法将『错误的数据』输出到指定的文件或装置上;

2>>:以累加的方法将『错误的数据』输出到指定的文件或装置上;

1>> 』以及『 2>> 』中间是没有空格的

将 stdout 与 stderr 分存到不同的文件去

find /home -name .bashrc > list_right 2>list_error

  • /dev/null 垃圾桶黑洞装置与特殊写法

将错误的数据丢弃,屏幕上显示正确的数据

find /home -name .bashrc 2>/dev/null

将指令的数据全部写入名为 list 的文件中

[dmtsai@study ~]$ find /home -name .bashrc > list 2> list <==错误

[dmtsai@study ~]$ find /home -name .bashrc > list 2>&1 <== 正 确

[dmtsai@study ~]$ find /home -name .bashrc &> list <== 正 确

上述表格第一行错误的原因是,由于两股数据同时写入一个文件,又没有使用特殊的语法, 此时两股数据可能会交叉写入该文件内,造成次序的错乱。所以虽然最终 list 文件还是会产生,但是里面的数据排列就会怪怪的,而不是原本屏幕上的输出排序。 至于写入同一个文件的特殊语法如上表所示,你可以使用 2>&1 也可以使用 &>

 

  • standard input < <<

将原本需要由键盘输入的数据,改由文件内容来取代

利用 cat 指令来建立一个文件的简单流程

cat > catfile

用某个文件的内容来取代键盘的敲击呢?

用 stdin 取代键盘的输入以建立新文件的简单流程

cat > catfile < ~/.bashrc

<<  这个连续两个小于的符号了。 他代表的是『结束的输入字符』的意思!举例来讲:『我要cat 直接将输入的讯息输出到 catfile 中, 且当由键盘输入 eof 时,该次输入就结束』,那我可以这样做:

cat > catfile << "eof"

 

echo "error message" 1>&2

echo "error message" 2> /dev/null 1>&2

第一句屏幕上有信息,第二个屏幕上无信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值