为什么会$ ls > ls.out导致“ls.out”包含在当前目录中的文件名列表中?为什么选择这个?不然为什么不呢?
所以我正在努力学习如何将标准输出和标准错误传递到各个领域。
假设我有一个here.txt单独的文件夹。
所以如果我这样做
ls here.txt not-here.txt 1>out 2>&1
Run Code Online (Sandbox Code Playgroud)
由于here.txt存在,我将有一些输出指向文件,out但由于not-here.txt不存在,错误将通过标准错误发送,我将其重定向到标准输出2>&1。
但是,为什么这不起作用:
ls here.txt not-here.txt 2>&1 1>out
Run Code Online (Sandbox Code Playgroud)
如果我在标准输出指令之后进行重定向,它似乎才有效?为什么?