탭 완성에 대한 "3197개 가능성 모두 표시"에 상한이 있는 이유는 무엇입니까?

탭 완성에 대한 "3197개 가능성 모두 표시"에 상한이 있는 이유는 무엇입니까?

나는 많은(.pdb) 파일(9917개)을 포함하는 디렉토리를 가지고 있습니다. 나는 그것들이 모두 거기에 있는지 확인하기 위해 그것들을 세고 싶었습니다(다운로드에는 9917이 있다고 나와 있었습니다). 디렉토리에 CD를 넣고 Tab 키를 두 번 누르면 터미널이 응답합니다.

Display all 3197 possibilities? (y or no)

처음에는 다운로드에 오류가 있는 줄 알았으나 시도해보니 다음과 같습니다.

find -maxdepth 1 -type f | wc -l

9917의 파일이 실제로 모두 거기에 있는 것을 확인했습니다. 내 질문은: 왜 상한이 3197인가요? 제 생각에는 이 숫자에는 특별한 것이 없습니다. 가장 큰 부호 있는 정수(short, int 또는 long)가 아닙니다. 실제로 저장하려면 12비트가 필요합니다(모두가 아님). 해당 최대값이 상대적으로 변경하기 쉽다면(일부 설정이 어딘가에 있음) 이를 변경하는 방법도 알고 싶습니다.

중요한 경우 Ubuntu 14.04를 사용하고 있습니다(그러나 최대값은 시스템마다 다를 수 있지만 이것이 Ubuntu 문제인지는 의심스럽습니다). 또한 제가 사용하는 쉘은 bash입니다.

답변1

추가 인수 없이 터미널에서 Tab 키를 누르면 현재 디렉터리가 아닌 경로의 항목이 완성됩니다. 이렇게 하려면 앞에 다른 매개변수를 추가해 보세요.

compgen -cbash의 출력 ( 에 있는 모든 실행 파일이 나열됨 ) 을 보면 $PATH예상한 것과 더 비슷하다는 것을 알 수 있습니다.

compgen -c | wc -l

관련 정보