개요

Linux의 'find' 명령어는 파일 시스템에서 파일과 디렉터리를 검색하는 데 사용되는 강력한 명령어다.

이 명령어는 다양한 조건을 조합하여 매우 정교한 검색을 수행할 수 있다.

이번 포스팅에서는 find 명령어의 기본 사용법에서 고급 옵션까지 예제를 활용하여 정리해 보자.

 

기본 사용법

1. 특정 디렉토리내에서 파일 찾기

# /path/to/directory: 검색을 시작할 디렉터리
# -name "filename": 이름이 "filename"인 파일을 찾기
find /path/to/directory -name "filename"

2. 확장자를 기준으로 파일 찾기

# .txt 확장자를 가진 모든 파일을 찾는다
find /path/to/directory -name "*.txt"

 

고급 사용법

1. 파일의 크기를 기준으로 찾기

# -size +500k: 크기가 500KB보다 큰 파일을 찾는다.
find /path/to/directory -size +500k

2. 파일의 수정 시간을 기준으로 찾기

# 7일 이내에 수정된 파일을 찾는다
find /path/to/directory -mtime -7

3. 특정 유형의 파일 찾기

# -type f: 일반 파일을 찾는다. 디렉터리를 찾으려면 -type d를 사용.
find /path/to/directory -type f

4. 여러 조건을 조합하여 찾기

# -name "*.txt" -and -size +500k: 확장자가 .txt이고 크기가 500KB보다 큰 파일을 찾는다.
find /path/to/directory -name "*.txt" -and -size +500k

5. 찾은 파일에 대해 명령 실행

# 찾은 파일을 삭제.
find /path/to/directory -name "*.log" -exec rm {} \;

예제

1. 홈 디렉토리에서 이름이 report가 포함된 파일 찾기

find ~ -name "*report*"

2. 루트 디렉토리에서 크기가 1GB보다 큰 파일 찾기

find / -size +1G

3. /var/log 디렉토리에서 30일 이상 수정되지 않은 로그 파일 삭제

find /var/log -name "*.log" -mtime +30 -exec rm {} \;

4. 현제 디렉토리에서 빈 파일 찾기

find . -type f -empty

5. 특정 사용자 소유의 파일 찾기

find /home -user username

 

정리

다양한 옵션과 조건을 합쳐서 효과적으로 검색과 필요 작업을 자동화할 수 있다.

찾는 용도로는 좋지만 무엇인가를 삭제하고 수정할 경우 잘못된 값을 select 하는 경우가 없도록 신중하게 사용하자.


반응형