我知道运行时有3个流附加到进程,即输入,输出和错误流。
并且重定向执行从左到右。
我打算执行一个命令,将其输出流重定向到一个文件,并将其错误流重定向到同一个文件。
- nofile不存在,text1文件确实存在
head nofile text1 1> output.txt 2> output.txt -- I know this won't work.
head nofile text1 1> output.txt 2>&1 -- while this will work, passing the error stream to the output ste
q1)为什么?
如果它是“假设以这种方式编写”的问题,那么为什么下面的工作也不能
head nofile text1 2>&1 1> output.txt
head nofile text1 2>&1> output.txt
在上面我将错误流重定向到输出流,输出流到文件。其逻辑与上述相同。
2>&1
作“将文件描述符2重定向到fd 1当前指向的东西 ” - 这使得更容易理解为什么2>&1 1>file
stderr没有被重定向到文件