Shell:重定向和文件描述符

重定向:

echo -n "hello" > hello.txt
echo " world" >> hello.txt
cat hello.txt  #hello world

# 将标准输出和标准出错都输出到/dev/null,即丢弃
cat hello.txt > /dev/null 2>&1

文件描述符:
文件描述符是linux系统用来访问文件的一个特殊指针,如系统预设文件描述符:
标准输入stdin:0,标准输出stdout:1,标准错误stderr:2,这三个文件都在/dev/std*

重定向:

ls + 2> err.txt  #将错误信息重定向输出到err.txt
cat a* &> all.txt  #将标准信息和错误信息都重定向输出到all.txt

>log 2>&12>&1 >log的区别:

>log 2>&1会先将stderr重定向到stdout,再将stdout重定向到log文件,所以会将全部打印信息都输出到log。
2>&1 >log会先将stdout重定向到log文件,再将stderr重定向到stdout,所以log文件里只会有stdout信息,而错误信息会打印到控制台(stderr)。

猜你喜欢

转载自blog.csdn.net/xuejianbest/article/details/85049116