运维15重定向

重定向

Linux Shell环境中支持输入输出重定向,用符号"<“和”>"来表示。
标准输入是文件描述符0。它是命令的输入,默认是键盘,也可以是文件或其他命令的输出。
标准输出是文件描述符1。它是命令的输出,默认是屏幕,也可以是文件。
标准错误是文件描述符2。这是命令错误的输出,默认是屏幕,同样也可以是文件。
0.1.2,可以用来指定需要重定向的标准输入或输出,比如2>a.txt 表示将错误信息输出到文件a.txt中。
同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用2>&1来实现。
Linux下还有一个非凡的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

>		标准正确输出   ( 覆盖 )
>>		标准正确输出   ( 追加 )
&>		混合输出(标准输出、标准错误输出)	( 覆盖 )
&>>		混合输出(标准输出、标准错误输出)	( 追加 )
2>		标准错误输出	( 覆盖 )
2>>		标准错误输出	( 追加 )
1> te.txt 2>&1	错误->标准输出->te.txt  ( 覆盖,标准输出是覆盖的 )
1>>te.txt 2>&1	错误->标准输出->>te.txt	( 追加,标准输出是追加的 )

重定向的使用有如下规律:
1)标准输入0、输出1、错误2需要分别重定向,一个重定向只能改变它们中的一个。
2)标准输入0和标准输出1可以省略。(当其出现重定向符号左侧时)
3)文件描述符在重定向符号左侧时直接写即可,在右侧时前面加& 【类似于指针前要加*号,来区分这、两种情况】。
4)文件描述符与重定向符号之间不能有空格!

tee

功能说明:读取标准输入的数据,并将其内容输出成文件。
补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。我们可利用tee把管道导入的数据存成文件,甚至一次保存数份文件。(T)

参  数:
 -a或–append   附加到既有文件的后面,而非覆盖它.不会删除原先内容
 -i-i或–ignore-interrupts   忽略中断信号。

xargs

由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令 。xargs命令应该紧跟在管道操作符之后,以标准输入作为主要的源数据流。
xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。
同时也 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。

发布了22 篇原创文章 · 获赞 0 · 访问量 292

猜你喜欢

转载自blog.csdn.net/weixin_44648034/article/details/104954717