数据流重定向

简介 数据流重定向是将某个指令执行后要输出在屏幕上的数据,传输到其他的地方。一是可以简化我们的屏幕输出, 去获取我们有用的数据。同时我们还可以将我们想要的数据存储下来。 你可以通过echo "123"和echo "123" > filename 去简单尝试一下这种方式的特点,第二种可以通过 查看新增的file文件观看内容。 标准输入输出与标准错误输出 基本使用 > 是我们实现这种数据流重导向所用的特殊字符,数据流重导向包括标准输入,标准输出和标准错误输出, 他们的规则如下所示: 名称 代码 符号 标准输入(stdin) 0 <或« 标准输出(stdout) 1 >或» 标准错误输出(stderr) 2 2>或2» > 和 » 的区别是 > 以覆盖的方法输出内容, » 则是以累加的方式输出内容。你可以自 己试一试。 标准输入的用法类似,可以尝试一下cat > file 尝试键盘输出,使用[ctrl]+d退出,然后看一下得到的 文件。 /dev/null 垃圾桶 在linux一切皆文件的哲学中 /dev/null是一个特殊的"装置" 你可以将任何你想忽略的内容导向到它,而这些 内容将彻底被丢弃。 特殊写法 如果我们想要将正确与错误数据写入同一个文件时,可能会发生数据交叉写入该文件内的情况,造成次序的错乱, 这个时候你可以使用 2>&1 和 &> 的语法。 find /home -name .bashrc > list 2> list <=错误 find /home -name .bashrc > list 2&>1 <=正确 find /home -name .bashrc &> list <=正确 2>&1 这种写法可以理解为将标准错误输出重定向到标准输出 &>file 这种写法可以理解为将标准输入和输出都重定向到文件file中 ls 2>1 测试一下,不会报没有2文件的错误,但会输出一个空的文件1; ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中; ls xxx 2>&1测试,不会生成1这个文件了,不过错误跑到标准输出了; ls xxx >out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了。 ...

<span title='2022-01-23 21:38:23 +0800 CST'>January 23, 2022</span>&nbsp;·&nbsp;yunlang