/proc/self/fd/에 대한 탭 완성이 나열된 것과 비교하여 다른 완료를 표시합니다.

/proc/self/fd/에 대한 탭 완성이 나열된 것과 비교하여 다른 완료를 표시합니다.

zsh를 사용하여 다음 명령을 탭하여 완료하려고 하면 ls /proc/self/fd/다음이 표시됩니다.

files
0@   1@   10@  11@  12@  13   2@   3

그러나 Enter(완료되지 않음)를 누르면 다음이 표시됩니다.

> ls /proc/self/fd/
0  1  2  3

현재 셸의 파일 설명자를 나열하면 다른 결과가 나타납니다.

> ls /proc/$$/fd/
0  1  10  2

이 세 가지 결과가 다른 이유는 무엇입니까?

답변1

ls /proc/self/fd프로세스에 대해 열려 있는 파일 설명자를 표시하는 것부터 시작 하겠습니다 ls. 이는 ls읽고 있는 디렉터리에 대한 세 가지 표준 입력, 출력 및 오류 설명자입니다 .

ls /proc/$$/fdls런타임 시 셸에 여전히 열려 있는 파일 설명자(3개의 표준 설명자 및 zsh터미널 파일 설명자 복사본)를 표시합니다(10).

탭 완성에는 ls /proc/self/fd/열린 파일 설명자가 표시됩니다.그 순간껍질을 위해. 표시된 내용 외에도 ls /proc/$$/fd여기에는 완료 자체를 위해 열린 파일 설명자( /usr/share/zsh/.../functions완료를 구현하는 파일에 대한)도 포함됩니다.

관련 정보