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

>> 追加

> 覆盖

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

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意思其实是一样的、


posted @ 2011-12-30 11:38  klobodnf  阅读(962)  评论(0编辑  收藏  举报