为什么who > lp
创建文件但who | lp
将输出引导至程序lp
?
这两个简单命令背后的基本原理是什么?有人可以用例子解释一下吗?
答案1
>
是重定向到文件。|
是通过使用管道重定向到进程。
后者本质上将STDOUT
一个进程的文件描述符 1 () 指向一个管道,该管道通向STDIN
另一进程的文件描述符 0 ()。文件重定向操作并不复杂,它只是获取 FD 并将其转储到文件中。
为什么who > lp
创建文件但who | lp
将输出引导至程序lp
?
这两个简单命令背后的基本原理是什么?有人可以用例子解释一下吗?
>
是重定向到文件。|
是通过使用管道重定向到进程。
后者本质上将STDOUT
一个进程的文件描述符 1 () 指向一个管道,该管道通向STDIN
另一进程的文件描述符 0 ()。文件重定向操作并不复杂,它只是获取 FD 并将其转储到文件中。