자체 데이터베이스를 통해 파일을 찾아주는 locate 명령어의 보안 강화 버전이다.
시스템이 자동적으로 slocate 데이터베이스를 업데이트를 하지 않으면, 파일이나 디렉토리 정보를 제대로 확인할 수 없다. 이 때문에 시스템에서는 updatedb 프로그래을 하루에 한번씩 cron으로 실행하여, 데이터베이스를 업데이트 한다.
레드햇 기준으로 하루 한 번씩 실행하는 cron 설정 디렉토리인 /etc/cron.daily/slocate.cron 파일을 살펴보면 /usr/bin/updatedb 파일이 실행되는 것을 볼수 있다.
find 명령과 달리 slocate명령은 데이터베이스에 미리 생성하며, 빠른 파일 찾기가 가능하다. 아래 예제와 같이 httpd.conf 파일을 slocat 명령으로 찾아보자.
[관련 명령어]
find 파일을 찾을 경로, 찾고자 하는 파일의 표현식, 찾을 경우 실행명령으로 파일을 찾는 명령어
locate 자체 데이터베이스를 통해 파일을 찾아주는 명령어
사용법 : slocate [옵션] -u : / 경로에서부터 slocate 데이터베이스를 만든다. -U dir : 지정한 디렉토리 경로에서부터 slocate 데이터베이스를 만든다. -c : -u나 -U옵션을 사용할 경우 /etc/updatedb.conf의 위치를 추적한다. -e dir1,dir2,... : -u나 -U옵션을 사용할 경우 지정한 디렉토리를 제외한다. -f fs_type1,... : -u나 -U옵션을 사용할 경우 지정한 파일시스템을 제외한다. -l level : 보안레벨로써, 0이면 보안체크를 하지 않는 대신, 검색이 좀 더 빠르고, 1이 디폴트 값으로 보안체크를 한다. -q : 에러 메시지를 보여주지 않는다. -n num : 지정한 숫자만큼의 결과만 보여준다. -i : 검색에서 일일이 확인한다. -r regexp : POSIX 표현 방식으로 데이터베이스를 검색한다. -o file : 지정한 파일명으로 데이터베이스 파일을 만든다. -d path : 지정한 데이터베이스 경로에 찾는다. -h, --help : 사용법을 보여준다. -v, --verbose : 데이터베이스 생성시 상세 메시지를 보여준다. -V, --version : 버전 정보를 보여준다.
시스템이 자동적으로 slocate 데이터베이스를 업데이트를 하지 않으면, 파일이나 디렉토리 정보를 제대로 확인할 수 없다. 이 때문에 시스템에서는 updatedb 프로그래을 하루에 한번씩 cron으로 실행하여, 데이터베이스를 업데이트 한다.
레드햇 기준으로 하루 한 번씩 실행하는 cron 설정 디렉토리인 /etc/cron.daily/slocate.cron 파일을 살펴보면 /usr/bin/updatedb 파일이 실행되는 것을 볼수 있다.
# cat /etc/cron.daily/slocate.cron #!/bin/sh renice +19 -p $$ >/dev/null 2>&1 /usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e "/tmp,/var/tmp,/usr/tmp,/afs,/net"
find 명령과 달리 slocate명령은 데이터베이스에 미리 생성하며, 빠른 파일 찾기가 가능하다. 아래 예제와 같이 httpd.conf 파일을 slocat 명령으로 찾아보자.
# slocate httpd.conf /etc/httpd/conf/httpd.conf /usr/share/doc/mod_perl-1.26/eg/httpd.conf.pl
[관련 명령어]
find 파일을 찾을 경로, 찾고자 하는 파일의 표현식, 찾을 경우 실행명령으로 파일을 찾는 명령어
locate 자체 데이터베이스를 통해 파일을 찾아주는 명령어