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