Shell
標準 I/O 文件描述符
我編碼這個
$ ls -l 1> stdout.txt
我得到了想要的輸出,
1> stdout.txt
將標準輸出的輸出重定向到文件 stdout.txt。
我沒有看到磁碟上存在任何此類文件。什麼樣的文件系統支持這樣的文件,是ramfs嗎?
這與procfs和sysfs有什麼相似之處嗎?
如果您使用的是 Linux,並且我正確閱讀了您的問題,請查看
/proc
.對於特定的過程,請查看
/proc/[pid]/fd
,例如ls -l /proc/123/fd/
還有一種特殊的方法可以通過以下方式到達目前程序 fd:
/proc/self/fd
。請注意,例如
ls -l /proc/self/fd
將用於ls
程序而不是您目前的 shell,您可以通過以下方式查看:cat /proc/self/cmdline | tr '\000' '\n'
或者
cat /proc/self/status
最後看看
PPid
哪個應該是你的shell的PID。Name: cat State: R (running) Tgid: 12696 Pid: 12696 PPid: 312
作為一個實驗,您可以嘗試打開兩個終端視窗:
- 在視窗 1 中輸入
echo $$
以獲取該 shell 的 PID。- 在視窗 2 中說
cat /proc/[pid]/fd/1
- 在視窗 1 中開始輸入並觀察視窗 2 中發生的情況。