Linux重定向&管道符

Part 1.重定向

【1】输出重定向
> file ##重新定向正确输出到file中(会覆盖原文件)
2> file ##重新定向错误输出到file中(会覆盖原文件)
&> file ##重新定向所有输出到file中(会覆盖原文件)

> file ##清空file(重新定向会覆盖原文件内容)

示例:
find /etc/ -name passwd  > 	file	##定向正确输出到file

(1)我们先创建一个文件file,在其中写入内容“abcd“

在这里插入图片描述(2)接着我们来试试重定向的效果~

在这里插入图片描述
在这里我们从/目录下的etc目录中找到-name【名字】为passwd的文件,将其正确输出输出到file文件中。 cat是查看指令,我们可以看到,file中内容已经被修改。

###这里我们先不讲解什么是正确输出。嘿嘿,所以底下就会出现错误输出

find /etc/ -name passwd 2> file.err ##定向错误输出到file.err
在这里插入图片描述
##在这里我们可以看到,file.err文件是空的,说明在本次重定向中没有出现错误输出。

find /etc/ -name passwd  &> file.all	##定向所有输出到file

在这里插入图片描述
【2】输出追加:

>>		##追加正确输出到文件最后
2>>		##追加错误输出到文件最后
&>>		##追加所有输出到文件最后
##不会覆盖原内容##

举例:
(1)编辑file ,写入内容“aabbccdd“
在这里插入图片描述
(2)输出追加,将passwd文件内容的正确输出输出到file里面,不覆盖原内容
在这里插入图片描述


Part 2.管道符

管道符 “ | “
作用:把前一条命令的输出变成后一条命令的输入

注意:
管道只允许正确的输出通过
通过管道的输出将会变成输入,而这些输入,会被第二条命令执行
如果需要保存输出内容,那么需要复制一份输出,用到的命令是“tee

此实验在普通用户下操作:

`find /etc/ -name passwd | wc -l`	   ##会看到的结果为2,因为错误输出不能通过管道

find /etc -name	passwd 2>&1|wc -l	   ##会看到19,因为编号为2的输出被“2>&1”转换为编号1
    
find /etc -name	passwd 2>&1|tee file |wc -l	##保存一份输出到file再统计行数

		                           大大的小小阳

猜你喜欢

转载自blog.csdn.net/dddxxy/article/details/89028944