특정 디렉토리 만 색인화하기 위해 어떻게 이동합니까?


23

내가 사용하고 싶습니다 mlocate를 하지만 인덱스 특정 디렉토리 (예를 들어, 내 우분투 서버에 /home/data있지만, 모든 것이 아래 /). 그러나 mlocate의 표준 구성은 반대 방식으로 작동합니다. 제거하려는 경로를 지정합니다 (로 PRUNE_PATHS).

이것을 달성하는 쉬운 방법이나 내가 원하는 것을 할 수있는 유사한 유틸리티가 있습니까? (참고 :와 같은 색인을 유지해야 mlocate하므로 find예를 들어 허용되지 않습니다) 감사합니다.

답변:


16

-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

이것은 부분 답변이므로 공감. 그러나 하나의 경로 만 허용 할 수 있습니다. 내 질문은 특히 여러 경로를 허용하는 방법에 관한 것입니다.
Andrew Ferrier

1
답변을 개선하고 쉽게 처리 할 수 ​​있도록 별칭을 만드는 것이 좋습니다
Janghou

좋은 대답입니다! 설명 덕분에 두 데이터베이스에서 동시에 검색 할 수 있다는 것을 알지 못했습니다. 더 나은 답변이 도착하지 않는 한 이것을 승인 된 것으로 표시하겠습니다!
Andrew Ferrier

updatedb -l 0 -U /home/user/music재귀? 제 경우에는없는 것 같습니다
Gaia

22

파일 편집 /etc/updatedb.conf

PRUNEPATHS검색하지 않으려는 디렉토리로 설정

PRUNEPATHS="/tmp /var/spool /media"

PRUNEPATHS: 업데이트 된 경로로 스캔해서는 안되는 경로 이름의 공백으로 구분 된 목록입니다. 각 경로 이름은 locate에 의해 디렉토리가보고되는 형식이어야합니다. 기본적으로 경로는 건너 뛰지 않습니다.

위의 모든 구성 정보는 명령 줄 옵션을 통해 유틸리티로 변경하거나 업데이트 할 수도 있습니다 updatedb.


아니, 그건 내가 원하는 것과 정반대입니다. 그러면 해당 디렉토리를 제외한 모든 것이 색인됩니다.
Andrew Ferrier

디렉토리를 제외한 모든 것으로 PRUNEPATHS를 설정할 수 있습니다. 이런 식으로 디렉토리 만 스캔합니다.
LnxSlck

명확하게 편집 해 주셔서 감사합니다. 색인을 생성 할 디렉토리와 함께 하위 디렉토리를 추가 할 때 PRUNEPATHS에 추가해야한다는 점을 기억해야하므로 약간 비현실적입니다. 그러나 작동합니다. 제안 해 주셔서 감사합니다.
Andrew Ferrier

예, 알아요.하지만 mlocate에 대한 많은 정보를 찾을 수 없습니다. 찾기와 같은 것을 사용할 수 없습니까?
LnxSlck

아니요, 많은 데이터가 있으므로 색인을 생성하는 것이 중요합니다. 문제가 명확 해졌습니다.
Andrew Ferrier

1

나는 당신이 시도 할 수있는 다른 것을 발견했습니다.

  1. 빠른 검색 - "따라서 내 SearchTool은 다른 방법을 사용합니다. 'ls'명령을 사용하여 검색된 폴더의 내용을 나열한 다음 해당 출력에서 ​​검색을 수행합니다.이 방법으로 검색 속도가 매우 빠릅니다 (처음으로 'ls'출력). "

인덱싱에 대해 잘 모르겠습니다.

  1. 트래커 GUI 사용
  2. 꽤 절름발이 솔루션 sudo 찾기 "여기에 검색 디렉토리를 배치하십시오"> files.list grep 'filename'files.list

여러 답변을 추가하지 마십시오. 필요한 경우 기존 답변을 편집하고 추가 정보를 포함하십시오. 감사.
jokerdino

네, 그렇게 할 것입니다
LnxSlck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.