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
。