1、看到重定向一下子就想起了web里面的redirect,没错,但是Linux数据流重定向的作用不是跳到另一个网页,而是用来存储重要的屏幕信息、将不必要的屏幕信息输出到文件里或者“黑洞”里、将错误信息和正确信息分开存储,或者只显示正确信息等等~
2、数据流重定向分为标准输入(代码为0,使用<或<<)、标准输出(代码为1,使用>或>>)、标准错误(代码为2,使用2>或2>>)输出这三种。
3、标准输入 > 例子:ls -l / >dir.txt 表示将根目录下的所有显示信息输出到文件dir.txt里面
4、如果希望继续在dir.txt里面输出东西,但不覆盖之前的信息,使用>>,比如ls /home >>dir.txt再看看dir.txt里面,就会发现末尾多了ls /home的结果。如果使用>的话,就会覆盖前面的内容哦!>输出是不能累加的!
5、如果想用另一个文件中的内容输入到dir.txt,可以这样 cat > dir.txt <report/build.xml (不保留文件里原有的内容)或者cat >> dir.txt <report/build.xml (保留文件里原有的内容)
6、运行shell后,如果想将屏幕信息中正确的和错误的信息分别存于两个文件。比如,系统中并没有qwert这个文件,但是有dir.txt这个文件,find dir.txt qwert >right_lisit 2>wrong_list 一定要使用2> 输出错误信息
7、有些错误事先已经知道了,而且无关紧要,没有必要在屏幕上显示,也没有必要存到文件里,可以这样find dir.txt qwert 2>/dev/null
这样就可以将错误信息扔进“黑洞”了~,如果你有兴趣可以去/dev/null,看一下~ 里面什么都没有的。。。
8、如果想将正确信息和错误信息都纪录下来,find dir.txt qwert >list.txt 2>&1
9、通过> 也可以建立文件哦~ cat > newfile
10、还有一个<<没有介绍,这个和他的“另一半”>>可不一样,并不表示累加,而表示输入的结束。比如:cat > newfile <<"over"
然后你就可以输入文件的内容啦
12345
上山打老虎
over
执行cat newfile命令,可以看到,文件里面没有over字样哦~,over只是我们自己定义的一个作为输入结束的标示符而已~
会了吗?操练一下吧~