내가 사용하고 싶습니다 mlocate를 하지만 인덱스 특정 디렉토리 (예를 들어, 내 우분투 서버에 /home
와 /data
있지만, 모든 것이 아래 /
). 그러나 mlocate의 표준 구성은 반대 방식으로 작동합니다. 제거하려는 경로를 지정합니다 (로 PRUNE_PATHS
).
이것을 달성하는 쉬운 방법이나 내가 원하는 것을 할 수있는 유사한 유틸리티가 있습니까? (참고 :와 같은 색인을 유지해야 mlocate
하므로 find
예를 들어 허용되지 않습니다) 감사합니다.
답변
-U 옵션 (–database-root PATH)을 사용할 수 있습니다
updatedb -l 0 -U /home/user/music -o /home/user/databasefile
-o는 출력 파일에 씁니다
-l 0은 읽을 수 있도록합니다. 그렇지 않으면 찾기 전용으로 액세스 할 수 있습니다.
그런 다음 다음과 같이 사용할 수 있습니다.
locate -d /home/user/databasefile Dylan
-d는 데이터베이스 경로를 설정합니다
둘 이상의 루트 디렉토리에 mlocate를 사용하려면 두 개의 데이터베이스 파일을 작성하고 다음과 같이 두 개의 데이터베이스 경로 옵션과 함께 locate를 사용하십시오.
locate -d /home/user/dbfile1 -d /home/user/dbfile2 searchstring
요약하고 더 구체적인 질문에 대답하려면 다음을 수행하십시오.
updatedb -l 0 -U /home -o /home/user/home_dbfile
updatedb -l 0 -U /data -o /home/user/data_dbfile
locate -d /home/user/home_dbfile -d /home/user/data_dbfile Dylan
답변
파일 편집 /etc/updatedb.conf
PRUNEPATHS
검색하지 않으려는 디렉토리로 설정
PRUNEPATHS="/tmp /var/spool /media"
PRUNEPATHS
: 업데이트 된 경로로 스캔해서는 안되는 경로 이름의 공백으로 구분 된 목록입니다. 각 경로 이름은 locate에 의해 디렉토리가보고되는 형식이어야합니다. 기본적으로 경로는 건너 뛰지 않습니다.
위의 모든 구성 정보는 명령 줄 옵션을 통해 유틸리티로 변경하거나 업데이트 할 수도 있습니다 updatedb
.
답변
나는 당신이 시도 할 수있는 다른 것을 발견했습니다.
- 빠른 검색 – “따라서 내 SearchTool은 다른 방법을 사용합니다. ‘ls’명령을 사용하여 검색된 폴더의 내용을 나열한 다음 해당 출력에서 검색을 수행합니다.이 방법으로 검색 속도가 매우 빠릅니다 (처음으로 ‘ls’출력). “
인덱싱에 대해 잘 모르겠습니다.
- 툴 트래커 GUI 사용
- 꽤 절름발이 솔루션 sudo 찾기 “여기에 검색 디렉토리를 배치하십시오”> files.list grep ‘filename’files.list