ディレクトリの参照方法に応じて、同じディレクトリ/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

シェルのファイル記述子の表示:cdシェルのファイル記述子ディレクトリを変更し、lsその内容を表示します。

ls /dev/fd/

ファイル記述子が表示されますls。ファイル記述子3はリストされているディレクトリですls

ls -l /dev/fd/

プロセス識別子が/proc/.../fdどこを...指しているかが表示されます。ls

この内容自体を見ると、より簡単に理解できます/dev/fd

ls -ld /dev/fd

Linuxでは/proc/self/fd

関連情報