命令 `ls 2 >tmp >tmp` 和命令 `ls > tmp` 之间的区别

abk*_*kds 1 shell

我不明白 b/wls 2>tmp >tmpls > tmp. 他们似乎都在做本质上相同的事情,创建一个文件 tmp 并存储ls命令的结果。

cuo*_*glm 5

简短的回答:ls 2>tmp >tmpstdout和都重定向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)