十句话教你学会Linux数据流重定向

时间:2021-09-15 08:22:28

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只是我们自己定义的一个作为输入结束的标示符而已~

会了吗?操练一下吧~