find 명령어
find 명령어는 Linux와 Unix 기반 시스템에서 파일과 디렉토리를 검색하는데 사용되는 강력하고 다용도의 명령어입니다. find 명령어를 사용하면 파일 이름, 크기, 유형, 수정 시간 등 다양한 속성에 따라 파일들을 검색할 수 있습니다.
find 명령어 기본 문법
find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression]
find [검색할 경로] [옵션] [동작]
- find 명령어 옵션
- find 명령어는 검색 대상 디렉토리와 함께 다양한 옵션을 사용할 수 있습니다.
옵션 | 설명 |
-name | 파일 이름으로 검색 |
-type | 파일 타입으로 검색 (f: 일반 파일, d: 디렉토리, l: 심볼릭 링크) |
-size | 파일 크기로 검색 |
-mtime | 파일 수정 시간으로 검색 |
-exec | 검색 결과에 대해 명령어 실행 |
find 명령어에서 사용되는 ctime과 mtime는 파일의 시간과 관련하여 다른 속성을 나타냅니다.
이 두 속성은 파일의 상태를 기준으로 하는데, 다음과 같은 차이점이 있습니다.
- ctime (Change Time)
- ctime은 파일의 상태가 마지막으로 변경된 시간을 나타냅니다.
- 파일의 상태란 파일의 속성(메타데이터)이 변경된 시간을 말합니다. 즉, 파일의 내용이 변경되거나 파일의 소유자, 그룹, 권
- 한 등의 속성이 변경되었을 때 ctime이 업데이트됩니다.
- 파일의 내용이 변경되면 ctime이 업데이트되므로, 파일의 크기가 변경되더라도 ctime이 변경됩니다.
- find 명령어에서 -ctime 옵션을 사용하면, 파일의 상태가 기준일보다 지난 시간인 파일들을 찾을 수 있습니다.
- mtime (Modification Time)
- mtime은 파일의 내용이 마지막으로 변경된 시간을 나타냅니다.
- 파일의 내용이 변경되면 mtime이 업데이트됩니다. 파일의 속성이 변경되는 경우에는 mtime이 변경되지 않습니다.
- find 명령어에서 -mtime 옵션을 사용하면, 파일의 내용이 기준일보다 지난 시간인 파일들을 찾을 수 있습니다.
간단히 말하면, ctime은 파일의 상태가 변경된 시간을 의미하고, mtime은 파일의 내용이 변경된 시간을 의미합니다. 따라서, -ctime 또는 -mtime 옵션을 사용하여 파일들을 찾을 때 어떤 기준을 사용할지 잘 구분하여 사용해야 합니다.
find 명령어의 예시
- 파일 이름으로 검색
find /home -name "file.txt"
/home 디렉토리에서 file.txt 파일 이름을 가진 파일을 검색합니다.
- 특정 패턴을 포함한 파일 검색
find /path/to/search -name "*pattern*"
- 특정 확장자 파일 검색
find /var/log -name "*.log"
/var/log 디렉토리 아래 모든 .log 확장자 파일을 검색합니다.
- 파일 크기로 검색
find /home -size +10M
/home 디렉토리에서 10MB 이상 크기의 파일을 검색합니다.
- 파일 유형으로 검색
find /home -type f
- 수정된 지 일정 기간이 지난 파일 검색
find /var/log -type f -mtime +30
/var/log 디렉토리 아래 모든 파일 중 30일 이상 수정되지 않은 파일들을 검색합니다.
- 수정된 지 일정 기간이 지난 파일 삭제
find /var/log -type f -mtime +30 -exec rm {} \;
/var/log 디렉토리 아래 모든 파일 중 30일 이상 수정되지 않은 파일들을 삭제합니다.
- 파일 수정 시간으로 검색
find /home -mtime +7
/home 디렉토리에서 7일 이전에 수정된 파일을 검색합니다.
- 검색된 파일들에 대해 특정 명령 실행
find /path/to/search -name "filename" -exec command {} \;
여기서 {}는 검색된 각 파일을 의미하고, \;는 -exec 옵션으로 실행할 명령의 끝을 나타냅니다.
find /home -name "*.log" -exec rm {} \;
/home 디렉토리에서 .log 확장자를 가진 파일을 검색하고, 검색 결과에 대해 rm 명령어를 실행하여 파일을 삭제합니다.
- 참고사항
- find 명령어를 사용할 때 검색 대상 디렉토리의 권한 설정에 주의해야 합니다.
- 검색할 디렉토리가 매우 큰 경우에는 검색 시간이 오래 걸릴 수 있습니다. 따라서 가능한 검색 대상을 좁게 설정해야 합니다.
참고URL
- find 명령어 : https://scbyun.com/736
'리눅스' 카테고리의 다른 글
[리눅스] Ubuntu 환경에서 Elasticsearch와 Kibana를 설치하고 연동하는 방법(single node) (0) | 2023.03.20 |
---|---|
ABRT(Automated Bug Reporting Tool)에 의한 문제(problem)를 감지 (0) | 2023.03.20 |
[리눅스] Fleet Server 호스트 추가 (0) | 2023.03.18 |
PHP의 설정 파일인 php.ini 파일의 위치를 찾는 방법 (0) | 2023.03.17 |
[리눅스] Elasticsearch와 Kibana를 설치하고 연동하는 방법(single node) (0) | 2023.03.17 |