존재하다FreeBSD12. 새로운 것을 만드세요가상 기기(디지털 바다), 나는locate
주문하다.
$ locate java
오류가 발생합니다.
위치: 데이터베이스가 너무 작음: /var/db/locate.database
/usr/libexec/locate.updatedb 실행
그래서 나는 달렸다 locate.updatedb
.
$ /usr/libexec/locate.updatedb
권한 문제에 대해 불평하는 메시지를 받았습니다.
/usr/libexec/locate.updatedb: /var/db/locate.database를 생성할 수 없습니다: 권한이 거부되었습니다.
좋아요 sudo로 실행하세요.
$ sudo /usr/libexec/locate.updatedb
보안 경고를 받았습니다.
경고하다
루트로 updateb를 실행하십시오. 그러면 모든 파일 이름이 표시됩니다.
컴퓨터에 로그인한 모든 사용자에게 표시되며 이는 보안 위험입니다.
유닉스는 정말 재미있습니다.
➥ FreeBSD 시스템에서 파일이나 디렉토리를 이름으로 찾는 정확하고 안전한 방법은 무엇입니까?
답변1
locate
자체 데이터베이스가 있기 때문에 쉽고 빠르게 파일을 검색할 수 있습니다. 그러나 나는 항상 그냥 사용합니다find(1)
. 결과는 이를 실행하는 사용자에게 반환되며, 사용자는 적절한 파일 시스템 권한이 있는 파일만 찾을 수 있습니다.
find
/
검색은 재귀적이므로 모든 파일 시스템을 검색하려면 검색 경로를 지정하면 됩니다.
다음 이름의 모든 파일과 디렉터리를 찾습니다 foo
.
find / -name "foo"
찾다오직파일 이름 foo
:
find / -type f -name "foo"
찾다오직디렉토리 이름은 다음과 같습니다 foo
.
find / -type d -name "foo"
유용한 옵션이 많이 있습니다. 확인하다매뉴얼 페이지.
답변2
run periodic
아시다시피,locate
이 명령은 파일 및 폴더 이름의 인덱스 컬렉션을 저장하는 데이터베이스를 사용합니다. FreeBSD를 새로 설치했기 때문에 데이터베이스가 아직 구축되지 않았습니다.
데이터베이스는 언제 구축되나요? FreeBSD가 정규 집안일을 수행할 때. 매일, 매주, 매달 자동으로 완료해야 하는 집안일들이 많이 있습니다. 보다periodic
주문하다.
가상 머신을 생성한 후 즉시 이러한 작업을 수행할 수 있습니다. 달리기:
periodic daily
periodic weekly
periodic monthly
아니면 세 개를 모두 한 줄로 실행하세요.
periodic daily weekly monthly
내 경험상 이러한 프로세스는 각각 약 1분 정도 소요됩니다.
➥ 특히 데이터베이스를 weekly
생성/업데이트하는 것 같습니다 . locate
당신이 알고 있는 것이 존재한다는 것을 찾을 수 없다면, 그것을 하십시오 run periodic weekly
.
locate
궁금하다면 실행 전후에 데이터베이스의 유무와 크기를 확인해 보면 된다 periodic
. 여기에서 찾을 수 있습니다:/var/db/locate.database
locate
이제 명령을 성공적으로 사용할 수 있습니다 .