🔥 DB("mlocate")에서 파일 찾기 : locate
🔥 디렉토리에서 파일 찾기 : find
🔥 실행 파일 찾기 : Whereis
- locate는 [패턴]을 포함하는 모든 내용을 찾아 빠른 속도로 반환함
- 🔍 locate example.txt 입력하면 example.txt 포함된 모든 파일을 찾아 경로를 보여줌
- locate는 디렉토리를 탐색해 파일을 찾아주는게 아니라, 파일들에 대한 리스트가 저장된 데이터베이스에서 해당 [패턴]을 찾아줌
- 이 때, locate가 사용하는 DB를 "mlocate"라함
- 처음 mac에서 이 명령을 실행했을 때는 DB("mlocate")가 존재하지 않아 오류가 발생할 수 있음(아래 DB생성은 몇 분 간의 시간이 소요될 수 있음)
- DB 생성 : sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
- DB 업데이트 : sudo /usr/libexec/locate.updatedb(매일 1번씩 자동 업데이트됨)
- 모든 파일을 찾고자 할 때(
*
표 사용) : "*.확장자" ⇢ 쌍따옴표로 감싸줘야 작동
- find의 경우에는 실제 디렉토리를 탐색하여 파일을 찾아주기 때문에 성능적으로는 locate에 비해 느림
- 다만, 현재 상태에서 디렉토리에서 파일을 찾기 때문에 locate처럼 DB를 업데이트가 필요 없음
- 🔍 find / -name "*.log" ⇢ 모든 디렉토리를 탐색해 name에 ".log"가 포함된 파일을 반환
- 슬래쉬(/)를하면 root디렉토리를 기준으로 찾아주고, 점(.)을하면 현재 경로를 포함하여 그 하위경로를 탐색함
- 🔍 find . -type f -name "*.txt" ⇢ 현재 위치와 그 하위 디렉토리에서 찾아줌
- -type 옵션을 이용해 f로 지정하면 파일만 찾아줌
- 실행 파일이 위치한 경로를 찾아 반환해줌
- 🔍 whereis man / whereis ls
- man과 ls가 모든 디렉토리에 실행파일로 포함되어있지 않은데 불구하고, 모든 디렉토리에서 실행이 가능한 이유는 $PATH 경로로 지정되 있기 때문
- $PATH에 무엇이 있는지 확인 방법(:을 통해 정보들이 구분되 있음)