"whereis"는 어떻게 파일을 그렇게 빨리 찾나요? [복사]

"whereis"는 어떻게 파일을 그렇게 빨리 찾나요? [복사]

최근에 특정 이름을 가진 바이너리 파일을 찾으려고 했습니다. 나는 whereis검색 유틸리티(util-linux 패키지의 일부)를 사용하기로 결정했습니다 . 유사한 명령을 사용하는 것과 비교하면 절반의 시간 안에 파일을 찾을 수 있습니다 find.

나는 또한 locate.whereis

이러한 명령은 어떻게 명령 에 find비해 파일을 그렇게 빨리 찾을 수 있습니까 ?

답변1

find일치하는 항목을 찾기 위해 전체 파일 시스템을 맹목적으로 탐색합니다. 모든 디렉터리의 모든 파일을 살펴보고 전체 파일 시스템을 다룰 때까지 멈추지 않기 때문에 시간이 오래 걸립니다.

locateupdatedb또한 전체 파일 시스템을 다루지만 사전 구축된 데이터베이스(명령으로 업데이트됨)를 사용하여 일치하는 파일을 찾음으로써 작업 속도를 높입니다.

whereis디렉토리 검색을 통해서도 파일을 찾을 수 있지만 which파일 시스템에서 매우 특정한 위치 하위 집합만 검색합니다(일반적 으로 적절 $PATH하게 환경 변수로 지정됨 $MANPATH). 또한 첫 번째 발생을 방지하여 실행 시간을 단축할 수 있습니다.

관련 정보