디렉토리가 참조되는 방식에 따라 동일한 디렉토리 /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.

관련 정보