我是 Linux 新手,并试图了解重定向的工作原理。
我一直在测试用于重定向stdout
和stderr
到同一个文件的各种语法,这些语法并不都产生相同的结果。
例如,如果我尝试列出 2 个不存在的文件 ( file1
and file2
) 和 2 个不存在的文件( foo
and fz
):
语法 #1(无重定向):
$ ls file1 foo fz file2
Run Code Online (Sandbox Code Playgroud)
这是我在终端中得到的输出:
ls: cannot access file1: No such file or directory
ls: cannot access file2: No such file or directory
foo fz
Run Code Online (Sandbox Code Playgroud)
语法#2:
现在,通过重定向:
$ ls file1 foo fz file2 > redirect 2>&1
Run Code Online (Sandbox Code Playgroud)
该redirect
文件包含与语法 #1 的结果相同:
ls: cannot access file1: No such file or directory
ls: cannot …
Run Code Online (Sandbox Code Playgroud)