Linux

[리눅스] find 명령어 완벽 가이드

인생아 2024. 9. 25. 11:48
반응형

find 명령어는 파일 및 디렉터리를 검색할 때 사용하는 강력한 도구입니다. 파일의 이름, 파일 크기, 수정 날짜, 권한 등의 다양한 조건을 지정하여 검색할 수 있으며, 특히 대용량 파일 시스템에서 특정 파일이나 디렉터리를 찾는 데 유용합니다.

find 명령어의 기본 구문

find [경로] [검색 조건] [옵션]
  • 경로: 검색을 시작할 디렉터리 경로.
  • 검색 조건: 파일의 이름, 유형, 크기, 수정 시간 등 다양한 조건을 지정.
  • 옵션: 검색 결과에 대한 추가 동작(예: 삭제, 이동 등)을 정의.

find 명령어 옵션

  • -name: 파일 이름을 기준으로 검색합니다.
  • -type: 파일 유형을 기준으로 검색합니다. (예: f = 일반 파일, d = 디렉터리)
  • -size: 파일 크기를 기준으로 검색합니다.
  • -mtime: 파일의 수정 시간을 기준으로 검색합니다.
  • -exec: 검색된 파일에 대해 특정 명령을 실행합니다.

find 명령어 예제

1. 특정 이름의 파일 검색

find /home -name "*.txt"

이 명령어는 /home 디렉터리에서 .txt 확장자를 가진 모든 파일을 검색합니다.

실행 예시:

user@linux:~$ find /home -name "*.txt"
/home/user/Documents/파일.txt
/home/user/Downloads/test.txt

2. 특정 유형(디렉터리)만 검색

find /var -type d

이 명령어는 /var 디렉터리 내의 모든 하위 디렉터리를 검색합니다.

실행 예시:

user@linux:~$ find /var -type d
/var/log
/var/cache
/var/tmp

3. 파일 크기가 100MB 이상인 파일 검색

find / -size +100M

이 명령어는 / 디렉터리 내에서 100MB 이상인 모든 파일을 검색합니다.

실행 예시:

user@linux:~$ find / -size +100M
/usr/lib/largefile.iso
/home/user/Videos/movie.mp4

4. 최근 7일 이내에 수정된 파일 검색

find /home -mtime -7

이 명령어는 /home 디렉터리에서 최근 7일 이내에 수정된 모든 파일을 검색합니다.

실행 예시:

user@linux:~$ find /home -mtime -7
/home/user/Documents/newfile.txt
/home/user/Downloads/recentfile.pdf

5. 검색된 파일을 삭제

find /tmp -name "*.log" -exec rm {} \;

이 명령어는 /tmp 디렉터리에서 .log 확장자를 가진 파일을 찾아 삭제합니다.

실행 예시:

user@linux:~$ find /tmp -name "*.log" -exec rm {} \;
user@linux:~$ ls /tmp
(no .log files found)

주의사항

  • find 명령어는 검색 범위가 크기 때문에, 시스템 전체에서 검색할 경우 시간이 오래 걸릴 수 있습니다.
  • 파일 삭제 등의 작업을 수행할 때는 신중하게 사용해야 합니다.
반응형