Linux

輸入/輸出重定向如何在 Linux/Unix 中工作?

  • May 4, 2022

例子:

貓 < test.txt

  1. 文件的內容是否test.txt寫入/傳遞到 的標準輸入cat,然後cat讀取其標準輸入?

或者

  1. 文件test.txt本身是否成為標準輸入cat?換句話說,是通過將文本文件的文件描述符(fd)設置為0來cat更改為的stdin嗎?test.txt

選項編號 2:test.txt打開,並cat設置其標準輸入指向該文件。

在 Linux 上,您可以通過執行看到這一點

$ touch /tmp/foo
$ sleep 120 &lt; /tmp/foo &
[1] 3006118
$ ls -l /proc/3006118/fd
total 0
lr-x------ 1 steve steve 64 May  4 16:11 0 -&gt; /tmp/foo
lrwx------ 1 steve steve 64 May  4 16:11 1 -&gt; /dev/pts/3
lrwx------ 1 steve steve 64 May  4 16:11 2 -&gt; /dev/pts/3

程序的標準輸入是/tmp/foo直接的。

引用自:https://unix.stackexchange.com/questions/701395