cd /dev/fd/; ls
给我我期望的输出:
0 1 2 255
但:
ls /dev/fd/
给出了我不期望的不同输出:
0 1 2 3
为什么?这里会发生什么?文件描述符 255 发生了什么?文件描述符3是什么?
答案1
cd /dev/fd/; ls
显示 shell 的文件描述符:cd
更改 shell 的文件描述符目录,并ls
显示其内容。
ls /dev/fd/
显示ls
的文件描述符。文件描述符 3 是列出的目录ls
:
ls -l /dev/fd/
将显示它指向/proc/.../fd
,其中...
是ls
进程标识符。
如果你看看它本身,可能会更容易理解这一点/dev/fd
:
ls -ld /dev/fd
在 Linux 上,它指向/proc/self/fd
.