찾기 및 찾기 명령을 사용하여 파일을 찾으려고 합니다.
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