유닉스 시스템에서 파일 검색

유닉스 시스템에서 파일 검색

찾기 및 찾기 명령을 사용하여 파일을 찾으려고 합니다.

locate명령은 더 빠르지만 db를 업데이트해야 합니다 slocate. 그리고 find명령은 느리지만 업데이트가 필요하지 않습니다.

나는 일종의 prd시스템을 사용하려고 노력하고 있습니다.

누구든지 내 쉘 스크립트에 대해 더 빠르고 초기 수준 사용자에게 사용할 수 있는 명령을 제안해 주실 수 있습니까?

답변1

파일이 2~3개 이하로 중첩된 몇 개의 하위 디렉터리에 있다는 점을 고려하면 다음과 같은 (아마도) 더 빠른 명령을 사용할 수 있습니다.

(cd /path/to/directory; ls *.txt */*.txt */*/*.txt)

어떻게 든 자신의 질문에 답할 수 있었으므로updatedb 있었지만속도를 높이는 중, 좋다:

$ updatedb -o /home/rahul/my.db -U /home/rahul/ -e "not/in/this/directory1 not/in/this/directory2"
$ locate -d /home/rahul/my.db            ### point locate to use your db

보다업데이트된 남자그것에 대한 도움을 요청하세요.


@cas 제안에 따라 출력을 find파일로 리디렉션하고 grep반복적으로 실행하세요. 일반 텍스트는 updatedb데이터베이스보다 더 많은 공간을 차지하지만 검색 속도는 훨씬 빠릅니다.

예를 들어:

find /path/to/directory > /tmp/files.list
grep -i file.xml /tmp/files.list
grep -i anotherfile.xml /tmp/files.list

관련 정보