1、什么是数据流重定向?
答:数据流分为三种,数据标准输入、数据标准输出、数据标准错误输出,数据流重定向就是将数据标准输出和数据标准错误输出分别传送到文件或者设备中去;
2、重定向的使用格式及其代表的特殊字符
标准数据输入使用<或者<<;标准输出使用>或者>>;标准错误输出使用2>或者2>>;
将ps -e 的文件重定向输出到/home/psfile文件下
ps -e > /home/psfile (文件路径必须要存在,文件若不存在,系统会自动创建,若文件存在系统会清空文件然后写入新的数据)
ps -e >》 /home/psfile(文件不会被覆盖,数据会在该文件数据的下方累加下去)
错误标准输出时:
在标准数据输出的符号前加2 即标准错误输出使用2>或者2>>;
使用方法和标准输出一样,2>代表数据覆盖文件,2>>代表数据不覆盖;
3、垃圾桶
假如知道错误信息要发生而却不想理会,可以将数据导向/dev/null ,这个设备可以吃掉任何导向信息
例如普通用户查找在/home下一个文件.bashrc
find /home -name .bashrc 2>dev/null
输出结果只显示正确的信息,错误的信息将被吃掉。
4、数据输入
<符号用最简单的说法来说就是将本来需要键盘输入的数据更改为由文件内容代替;
例:用数据输入代替键盘的输入以创建新文件的简单流程
cat >catfile < /.bashrc
ls -l catfile ~/.bashrc
结果显示两个文件大小一模一样,几乎像使用CP复制的,因为catfile的内容就是从.bashrc中输入进去的。
为啥我们要使用命令输出充定向?
1、屏幕输出很重要,并且需要保存下来的时候;
2、后台程序运行,不希望他干扰到屏幕的时候;
3、一些系统命令的执行结果想保存的时候;
4、一些已知的错误信息想一''2>/dev/null'' 丢弃的时候;
5、错误信息与正确信息需要区别分开输出的时候;