답변:
또 다른 방법은 다음에서 패턴 일치를 사용하는 것입니다 locate.
locate '/some/directory/*filename*'
아래 명령의 출력을 비교하십시오.
$ locate tmpfile
/usr/lib64/perl5/auto/POSIX/tmpfile.al
/usr/share/man/fr/man3/tmpfile.3.gz
/usr/share/man/ja/man3/tmpfile.3.gz
/usr/share/man/man3/tmpfile.3.gz
/usr/share/man/man3p/tmpfile.3p.gz
$
$ locate '/usr/lib64/*tmpfile*'
/usr/lib64/perl5/auto/POSIX/tmpfile.al
$
locate /usr/lib*tmpfile* 동일한 결과를 제공합니다.
$ locate '/usr/lib64/*tmpfile'결과가 반환되지 않습니다.
locatethrough 결과를 파이프 할 수 있습니다 grep.
다음을 사용하여 특정 디렉토리의 slocate 데이터베이스를 작성하십시오.
updatedb -U /path/to/directory
다음으로 검색하십시오.
locate <search_string>
최신 정보
이것은 젠투 시스템에서 잘 작동하지만 CentOS에는 -U옵션 이 없습니다 . 따라서 대신 아래에서 시도해 볼 수 있습니다.
다음을 사용하여 데이터베이스를 빌드하십시오.
# updatedb -U /path/to/dir -o dir_locate.db
그리고 검색 :
# locate -d dir_locate.db <search_string>
updatedb: can not change group of file 'db.db.kHhzFz' to 'mlocate': Operation not permitted 확인하십시오 .
locate지정된 디렉토리 내에서 검색 할 수있는 터미널 별명입니다 .alias my_locate="updatedb -U /path/to/yourdir -o /path/to/your_dir_locate.db; locate -d /path/to/dir_locate.db "일단 별칭이 적용되면 터미널 유형my_locate *foo*에서 레이스를 시작합니다. 콜론 문자를 사용하여 데이터베이스를 연결하여 데이터베이스 업데이트를 연결하고 검색을 찾을 수 있습니다. rtfm : linux.die.net/man/8/updatedb