我不明白 b/wls 2>tmp >tmp和ls > tmp. 他们似乎都在做本质上相同的事情,创建一个文件 tmp 并存储ls命令的结果。
简短的回答:ls 2>tmp >tmp将stdout和都重定向stderr到 file tmp。而ls > tmp只重定向stdout到 file tmp。
试试这个看看区别:
$ ls asdsadasd 2>tmp >tmp
$ cat tmp
ls: cannot access asdsadasd: No such file or directory
$ ls asdsadasd > tmp
ls: cannot access asdsadasd: No such file or directory
$ cat tmp
<Nothing happen here>
Run Code Online (Sandbox Code Playgroud)