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

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

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

locate이 명령은 더 빠르지만 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

관련 정보