为什么对于同一个目录/dev/fd/,根据引用该目录的方法,ls 的输出会有所不同?

为什么对于同一个目录/dev/fd/,根据引用该目录的方法,ls 的输出会有所不同?
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.

相关内容