-
찾기 - locate / whereis / which / find 차이점22024년 4분기의 도전/칼리리눅스 2024. 9. 9. 22:03728x90반응형
지난번에 '찾기' 를 할 수 있는 명령어(?) 에 대해서 기록했다.
https://letoileestla.tistory.com/160
그러고 나서 파일을 생성하는 것을 다시 복습했는데
cat hackingskills // hackingskills 파일의 내용이 표현 cat> hackingskills // hackingskills 파일을 생성하고, 해당 내용을 입력할 수 있음.
문제는 해당 파일을 만들고 나서 locate / whereis / which / find 로 검색해봤는데 결과 값이 locate/ find 만 나오는 것이다.
아니 도대체 왜? 나는 파일을 만들었는데 그 결과 값은 어떤 명렁에서는 나오고 또 다른 명렁에서는 안 나오는 것인가?
구글 검색을 해볼까 하다가...어제 사용한 chatgpt가 떠올랐고...이제는 그 위력을 반가워 해야할지 기뻐해야할지 모를 존재가 되었는데 역시나 내가 알고 싶은 대답을 해주었다.
//인용//
좋은 질문입니다! `locate`, `find`, `whereis`, `which`는 모두 파일을 찾기 위한 명령어지만, 각 명령어의 기능과 동작 방식이 다릅니다. 아래에 각 명령어의 특징과 왜 결과가 다를 수 있는지를 설명해드릴게요.
1. `locate`
- **기능**: `locate`는 파일 시스템의 데이터베이스를 검색하여 파일을 찾습니다. 이 데이터베이스는 주기적으로 업데이트되며, 일반적으로 `/var/lib/mlocate/mlocate.db` 같은 위치에 저장됩니다.
- **동작**: `locate` 명령어를 사용하면 데이터베이스에서 파일을 찾아 빠르게 결과를 반환합니다.
- **장점**: 매우 빠르며, 최신 상태의 파일을 찾기 어려울 수 있습니다(데이터베이스 업데이트가 필요할 때).
2. `find`
- **기능**: `find`는 실제 파일 시스템을 직접 검색하여 파일을 찾습니다.
- **동작**: 검색 조건을 지정하여 실제 파일 시스템을 탐색하기 때문에 실시간으로 최신 상태의 파일을 찾을 수 있습니다.
- **장점**: 파일 시스템의 현재 상태를 반영하므로, 가장 최신의 파일을 찾는 데 유용합니다.
3. `whereis`
- **기능**: `whereis`는 특정 명령어의 바이너리, 소스 코드, 매뉴얼 페이지 등을 찾기 위해 사용됩니다.
- **동작**: 일반적으로 시스템 명령어와 관련된 파일을 찾는 데 사용됩니다. 예를 들어 `whereis ls`는 `ls` 명령어와 관련된 파일의 위치를 찾습니다.
- **장점**: 시스템 명령어의 위치를 찾는 데 최적화되어 있습니다.
4. `which`
- **기능**: `which`는 명령어가 실행될 위치(경로)를 찾습니다.
- **동작**: `$PATH` 환경 변수에 설정된 경로를 기준으로 명령어를 검색합니다.
- **장점**: 주로 실행 파일의 위치를 확인하는 데 사용됩니다.
왜 결과가 다른가?
- **파일 위치**: `cat > hackingskills`로 생성한 파일은 사용자가 지정한 경로에 존재하지만, `whereis`와 `which`는 시스템 명령어 및 실행 파일만 검색합니다. 그러므로 `hackingskills` 파일은 이러한 명령어로 찾을 수 없습니다.
- **명령어의 목적**: `locate`와 `find`는 일반적인 파일을 찾기 위해 사용되며, 파일이 저장된 경로를 기준으로 검색합니다. 반면 `whereis`와 `which`는 명령어와 실행 파일을 찾는 데 특화되어 있습니다.
따라서 `hackingskills` 파일을 찾고자 한다면 `locate`나 `find`를 사용해야 하고, `whereis`와 `which`는 시스템 명령어와 관련된 파일을 찾는 데 사용해야 합니다.//인용끝// 출처 : chatgpt
반응형'2024년 4분기의 도전 > 칼리리눅스' 카테고리의 다른 글
찾기 - locate / whereis / which / find 차이점1 (0) 2024.09.08 칼리리눅스_240826 (0) 2024.08.26