나는 데이터베이스를 생성해야 하고 그것이 훨씬 빠르다는 것을 알고 있습니다 locate
. 데이터베이스를 생성할 필요가 없으며 find
속도도 그리 빠르지 않습니다. 그렇다면 어느 시점에서 더 효과적/더 감정적/더 나은 최종 결과를 제공합니까 find
?locate
답변1
말씀하신 대로 찾기에는 데이터베이스가 있으므로 훨씬 빠르지만 찾기는 파일 시스템을 순회해야 합니다. 그러나 find의 데이터베이스에는 파일 이름(및 해당 경로)만 포함되는 반면 find는 다른 메타데이터(예: mtime 또는 크기)를 기반으로 파일을 선택할 수 있습니다. 이것이 바로 내 이력서의 다양성입니다. 또한 데이터베이스는 일괄적으로(주로 밤마다) 업데이트되어야 하므로 최근에 생성된 수정된 파일이 올바르게 표시되지 않습니다. 또한 모든 최신 Unix 시스템에서 find 기능을 사용할 수 있다고 기대할 수 있지만 모든 시스템에 찾기 지원 데이터베이스가 있는 것은 아닙니다.
따라서 찾기가 더 빠르고 파일 위치를 찾는 데 사용하며 찾기가 더 다양합니다. 더 나은 일반적인 접근 방식은 없습니다.
답변2
일반적으로 locate
데이터베이스는 하루에 한 번 업데이트됩니다. 따라서 하루보다 최신 항목을 검색해야 하는 경우 find
이렇게 하는 것이 좋습니다.
반면, 검색해야 하는 파일 시스템이 클수록 locate
검색 속도는 빨라집니다 find
. 파일 시스템이 네트워크 공유에 있는 경우 특히 그렇습니다.