Linux里有的重定向,到底是做什么用的?

[root@localhost pijiuya]# cat test.txt
abcdefg
ACCCCCC
DEEEEEE
FFFFFFF
[root@localhost pijiuya]# echo acca > test.txt
[root@localhost pijiuya]# cat test.txt
acca
[root@localhost pijiuya]# 

上述命令在于覆盖,将原来的内容替换成新内容

[root@localhost pijiuya]# echo 666777 >> test.txt
[root@localhost pijiuya]# cat test.txt
acca
666777

上述重定向命令在于追加,相当于在原来的信息后追加新内容。

0(stdin,标准输入)
1(stdout,标准输出)
2(stderr,标准错误输出)
重定向加上以上参数可以达到不同的组合效果

如果要将错误流重定向到文件中,则需要使用"2>"符号

ls > file.txt  # 将ls命令的输出流重定向到file.txt文件中
ls 2> error.txt  # 将ls命令的错误流重定向到error.txt文件中
ls > file.txt 2> error.txt  # 将ls命令的输出流和错误流都重定向到文件中

以上是结合参数使用重定向的情况

command > /dev/null

以上command是命令的统称,需要换成命令诸如错误的命令行:ifconfiga
这是一个重定向到黑洞文件的内容,重定向到黑洞文件的内容将会被黑洞丢弃。

后记

记录这个知识点的原因是学习Linux时遇到了这个命令感觉没什么用,后来经过询问大佬,意识到很多时候都会用到它,诸如运行某个命令但会产生非常多的log信息,当我们不需要某些log日志,或者报错信息的时候,可以使用重定向到黑洞文件进行丢弃。

03-29 20:41