数据流重定向就是将某个命令执行后应该要出现在屏幕上的数据,给它传输到其他的地方。
1.数据输出:
我们知道我们运行命令的时候有时会将结果输出到屏幕上,我们可以将它输出到某个文件:
1》标准输出 >或>>
①> 输出到某个文件,如果文件不存在则创建文件,如果文件存在则清空文件写入。
②>> 输出到某个文件,如果文件不存在则创建文件,如果文件存在内容则追加写。
2》标准错误输出 2>或2>>
①2> 将错误信息输出到某个文件,如果文件不存在则创建文件,如果文件存在则清空文件写入。
②2>> 将错误信息输出到某个文件,如果文件不存在则创建文件,如果文件存在则追加写。
2.垃圾桶黑洞:
上面我们可以看到,有错误信息的时候我们可以清空写或者追加写入错误信息,那么我们可不可以将错误信息不显示在屏幕,而且不写入到文件?有的那就是垃圾桶黑洞,比如我们随意输入一个命令:
cuowumingling 2> /dev/null
cuowumingling 2>> /dev/null
1》我们测试了清空写和追加写,运行命令之后查看/dev/null文件:
空空如也的null文件2》/dev/null文件会吃掉所有写入的数据,就像黑洞一样
3.数据输入:
我们使用>或>>输入文件的数据是系统生成的,当然我们也可以人为的输入。
1》将原来有键盘输入的数据,改由文件内容来替换:
mingling >right_file >>wrong_file <data_file
1》运行mingling,输入data_file中的数据,如果命令正确数据输入到right_file ,否则输入到wrong_file
2》<<'string'
1》<<'string'代表结束的输入字符
2》当输入数据是‘string’的时候就会结束当前输入,作用同【ctrl】+【d】
4.数据流重定向应用场所:
1》屏幕输出的数据很重要,我们需要将它保存起来
2》后台执行的程序,我们不希望它干扰屏幕的输出结果
3》当我们知道某些命令会产生错误信息,想以【/dev/null】丢掉的时候
4》正确信息和错误信息需要分别输出的时候
网友评论