当前位置: 技术问答>linux和unix
linux 重定向问题,请教
来源: 互联网 发布时间:2016-11-21
本文导语: 重定向的执行顺序是怎样的? 下面的这两个命令结果不一样。(why?) jiale@wjl ~:->> (echo "fd1";echo "fd2" >&2) > file 2>&1 jiale@wjl ~:->> more file fd1 fd2 jiale@wjl ~:->> (echo "fd1";echo "fd2" >&2) 2>&1 >file fd2 jiale@wjl ~:->> mor...
重定向的执行顺序是怎样的?
下面的这两个命令结果不一样。(why?)
jiale@wjl ~:->> (echo "fd1";echo "fd2" >&2) > file 2>&1
jiale@wjl ~:->> more file
fd1
fd2
jiale@wjl ~:->> (echo "fd1";echo "fd2" >&2) 2>&1 >file
fd2
jiale@wjl ~:->> more file
fd1
下面的这两个命令结果不一样。(why?)
jiale@wjl ~:->> (echo "fd1";echo "fd2" >&2) > file 2>&1
jiale@wjl ~:->> more file
fd1
fd2
jiale@wjl ~:->> (echo "fd1";echo "fd2" >&2) 2>&1 >file
fd2
jiale@wjl ~:->> more file
fd1
|
|
第一种情况standard output和standard error都指向file,所以fd1和fd2都会写到文件。
1---------------->file
/|
2------------------|
第二种情况standard error指向standard output,而standard ouput指向file,因此fd2会从standard output输出,而fd1会写到文件。
2---------------->stdout
1---------------->file
1---------------->file
/|
2------------------|
第二种情况standard error指向standard output,而standard ouput指向file,因此fd2会从standard output输出,而fd1会写到文件。
2---------------->stdout
1---------------->file