以下两者有何区别:
命令 > 文件名 2>&1
和
命令 2>&1 > 文件名
为什么例如(假设没有xxx
文件)。
ls xxx > 1.txt 2>&1
工作时
ls xxx 2>&1> 1.txt
没有?
答案1
重定向的顺序很重要。例如,命令
ls > dirlist 2>&1
将标准输出(文件描述符 1)和标准错误(文件描述符 2)定向到文件 dirlist,而命令
ls 2>&1 > dirlist
仅将标准输出定向到文件 dirlist,因为在将标准输出重定向到 dirlist 之前,标准错误已成为标准输出的副本。
(引自Bash 参考手册)