当前位置: 技术问答>linux和unix
一个奇怪的I/O重定向问题
来源: 互联网 发布时间:2015-12-24
本文导语: 我在学习libtool使用时,会有一个奇怪的I/O重定向问题: hostname$libtool --mode=compile gcc -c main.c mkdir .libs gcc -c main.c -fPIC -DPIC -o .libs/main.o gcc -c main.c -o main.o >/dev/null 2>&1 当中的“gcc -c main.c -o main.o >/de...
我在学习libtool使用时,会有一个奇怪的I/O重定向问题:
hostname$libtool --mode=compile gcc -c main.c
mkdir .libs
gcc -c main.c -fPIC -DPIC -o .libs/main.o
gcc -c main.c -o main.o >/dev/null 2>&1
当中的“gcc -c main.c -o main.o >/dev/null 2>&1”
是什么意思啊?
是不是将stderr(2)重定向到stdout(1)中去?为什么还要加上一个&呢?
2>&1, 2>1之间又有什么区别呢?
实在让我很迷茫,肯请大家给我一个解答,谢谢:)
hostname$libtool --mode=compile gcc -c main.c
mkdir .libs
gcc -c main.c -fPIC -DPIC -o .libs/main.o
gcc -c main.c -o main.o >/dev/null 2>&1
当中的“gcc -c main.c -o main.o >/dev/null 2>&1”
是什么意思啊?
是不是将stderr(2)重定向到stdout(1)中去?为什么还要加上一个&呢?
2>&1, 2>1之间又有什么区别呢?
实在让我很迷茫,肯请大家给我一个解答,谢谢:)
|
另外 2>1 是指将stderr重定向文件名为"1"这个文件中去
|
cmd >file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中
gcc -c main.c -o main.o >/dev/null 2>&1 就是不打印任何信息
cmd 2> file 把 stderr 重定向到 file 文件中
两个是不一样的
gcc -c main.c -o main.o >/dev/null 2>&1 就是不打印任何信息
cmd 2> file 把 stderr 重定向到 file 文件中
两个是不一样的
|
>/dev/null 2>&1 就是不打印任何信息"
就是将2(stderr),1(stdout)都重定向到>/dev/null
2>&1就是2包括1都定向到>/dev/null
就是将2(stderr),1(stdout)都重定向到>/dev/null
2>&1就是2包括1都定向到>/dev/null