![다수의 디렉토리에서 파일 검색 시 검색 시간을 줄이는 방법](https://linux55.com/image/75666/%EB%8B%A4%EC%88%98%EC%9D%98%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%97%90%EC%84%9C%20%ED%8C%8C%EC%9D%BC%20%EA%B2%80%EC%83%89%20%EC%8B%9C%20%EA%B2%80%EC%83%89%20%EC%8B%9C%EA%B0%84%EC%9D%84%20%EC%A4%84%EC%9D%B4%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
많은 디렉토리에서 3가지 유형의 파일을 검색해야 합니다(내 생각엔 1k 이상 정도?). 그 중 일부는 13개 레벨 깊이에 있습니다.
installer.jar
Installpackage_*.jar
Patch_*.jar
이제 find 명령을 사용하고 있습니다. 찾을 수 있는 모든 파일 경로를 제외하여 find 명령이 이전에 검색한 폴더를 탐색하지 않도록 합니다. 나는 최대 깊이를 13(내가 찾을 수 있는 가장 깊은 것)으로 설정했습니다. 그러나 검색을 완료하는 데 몇 시간이 걸렸습니다. 검색 시간을 줄이는 방법을 알고 계십니까?
Ps: 죄송합니다. 현재 집에 있고 회사 컴퓨터에 액세스할 수 없기 때문에 스크립트를 게시하지 않았습니다.
답변1
에서 파일을 읽을 수 있는 경우 를 사용하여 빠르게 찾을 others
수 있습니다 locate
. A는 매일(또는 그 이상) 업데이트 cronjob
되어야 합니다 .locatedb
예는 다음과 같습니다.
$ time locate *.db
/etc/aliases.db
/usr/bin/lft.db
/usr/bin/traceproto.db
/usr/bin/traceroute6.db
/usr/bin/traceroute.db
/usr/sbin/tcptraceroute.db
/var/cache/dictionaries-common/aspell.db
/var/cache/dictionaries-common/hunspell.db
/var/cache/dictionaries-common/ispell.db
/var/cache/dictionaries-common/wordlist.db
[a lot of .db files]
...
real 0m0.036s
user 0m0.032s
sys 0m0.000s