shell输出输入流常用符号解释

本文详细解析了Linux系统中重定向与管道的工作原理及使用方法,包括标准输入、标准输出与标准错误的不同应用场景,通过具体示例展示了如何将命令输出结果重定向至文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

>> 追加

> 覆盖

>& 把前面的保存位置设置成后面的保存位置

P.S.:当然还有反的<< < <&意思就是方向不一样啦、往后追加变成往前追加、这就不重复写了

0 标准输入

1 标准输出

2 标准错误

 

例子:

 

ls /usr/tmp 2> err.file

把命令所产生的错误写入到err.file文件中、如果不存在则创建、如果存在则覆盖

ls /usr/tmp &> output.file

把错误和输出信息都写入到err.file文件中、如果不存在则创建、如果存在则覆盖

command 2>&1

把标准错误信息输出到标准输出的同一位置上、commadn代表任何命令、这段话其实是废话、加上去和直接运行command无区别、因为标准输出的位置就是输出在屏幕上、标准错误信息把位置输出标准输出的位置上、也就是屏幕上、等于没做过任何改变、因为标准错误和标准输出信息本来就是一样输出在屏幕上、不然莪们还怎么操作linux啊、囧

 

command >output_file 2>&1

这个命令就开始有点意思了、command同样代表任何命令、迩可以是ls显示目录、也可以是lsdflsl这样的错误命令、当然、迩输入正确的命令得到的将会是标准输出信息、输入错误的命令得到的就是标准错误的信息、好吧、这个命令的前半部分意思就是把命令的结果输入到output_file这个文件中、如果没有就创建、存在就覆盖、当然这个命令的结果可能是正确的命令也可能是错误的、但有一点是不变的、就是如果是标准输出信息就一定会把信息放进output_file文件中、所以当迩输入ls这样的正确命令当然是把标准输出的命令写进去output_file啦、如果迩输入的是lsdfsf这样错误的命令标准输出的命令当然是不会在output_file写上任何信息啦、但由于有后面的那句、2>&1、意思就是标准错误信息会同样往标准输出信息同样的位置写入、所以就算标准输出没有任何信息写入、发生错误时标准错误还是会往output_file写上任何错误信息、所以这条命令和ll &>output.file意思其实是一样的、


转载于:https://www.cnblogs.com/klobohyz/archive/2011/12/30/2307244.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值