Linux에서 find 명령어를 사용하여 파일 검색하기
find 명령어는 Linux 시스템 관리자 도구 중 가장 강력한 도구 중 하나입니다.
사용자가 지정한 표현식에 따라 디렉토리 구조 내에서 파일과 디렉토리를 검색할 수 있으며, 검색된 파일에 대해  사용자가 지정한 작업을 수행할 수 있습니다.
find 명령어는 파일 권한, 유형, 날짜, 소유권, 크기 등 다양한 조건을 기반으로 파일을 검색할 수 있습니다. 또한 grep, sed와 같은 다른 명령어와 결합하여 사용할 수도 있습니다.
find명령어 사용법
find [options] [path...] [expression]
예제:
find -L /etc/nginx -name "*.conf"
#or
find -L /etc/nginx -name \*.conf
- options(- -L): 심볼릭 링크를 따라가도록 허용. 기본적으로는 심볼릭 링크가 가리키는 폴더를 검색하지 않음.
- path...(- /etc/nginx): 검색할 디렉토리.
- expression(- -name "*.conf"): .conf로 끝나는 파일 검색.
예시:
파일 이름으로 파일 검색하기
파일 이름으로 검색할 때는 -name 옵션을 사용합니다.
예제:
/etc/nginx 디렉토리에서 nginx.conf 파일 검색.
find /etc/nginx -type f -name nginx.conf
대소문자를 구분하지 않고 검색하려면 -iname옵션 사용:
find /etc/nginx -type f -iname Nginx.conf
파일 유형으로 검색하기
-type 옵션을 사용하여 파일 유형을 기반으로 검색할 수 있습니다.
- 
f: 일반 파일 
- 
d: 디렉토리 
- 
l: 심볼릭 링크 
- 
c: 문자 장치* 
- 
b: 블록 장치 
- 
p: 명명된 파이프(FIFO) 
- 
s: socket 
예제: 현재 디렉토리에서 디렉토리 검색.
find . -type d
디렉토리 또는 파일 권한을 재귀적으로 설정하려면 아래와 같이 명령어 사용이 가능:
sudo find /var/www/html -type d -exec chmod 0777 {} \;
sudo find /var/www/html -type f -exec chmod 0666 {} \;
执行命令前后对比:
파일 크기로 검색하기
-size 옵션과  크기 단위를 사용한 파일을 검색이 가능하다.
- 
b: 512-byte blocks (default) 
- 
c: bytes 
- 
w: two-byte words 
- 
k: Kilobytes 
- 
M: Megabytes 
- 
G: Gigabytes 
예제: /tmp 디렉토리에서 정확히 1024바이트 크기의 파일 검색.
find /tmp -type f -size 1024c
1MB보다 작은 파일을 검색하려면 아래와 같이 실행:
find . -type f -size -1M
1MB보다 큰 파일을 검색하려면 + 기호를 사용합니다:
find . -type f -size +1M
아래와 같이 파일 크기 범위를 지정하여 검색할 수도 있다.
find . -type f -size +1M -size -2M
수정 날짜로 파일 검색하기
find 명령어는 파일의 마지막 수정, 접근, 변경 시간을 기준으로 검색할 수도 있으며 +와 - 기호를 사용하여 특정 기간보다 이전 또는 이후를 지정할수 있다.
예제: 최근 5일 이내에 수정된 /etc 디렉토리의 .conf 파일 검색.
find /etc  -name "*.conf" -mtime -5
다음은 -daystart 옵션을 사용하여 수정 날짜를 기준으로 파일을 필터링하는 또 다른 예제다. /home 디렉토리에서 30일 이상 오래전에 수정된 모든 파일을 나열:
find /home -mtime +30 -daystart
파일 권한으로 검색하기
-perm 옵션을 사용하여 특정 권한을 가진 파일을 검색할 수 있다.
예제: /var/www/html 디렉토리에서 755 권한의 파일 검색.
find /var/www/html -perm 644
특정 사용자, 그룹 또는 다른 항목 중 하나라도 조건에 부합되는 파일을 검색하려면 / 기호를 사용할수 있다:
find . -perm /777
소유자로 파일 검색하기
특정 사용자나 그룹이 소유한 파일을 검색하려면 -user나 -group 옵션을 사용할수 있다.
예제: 사용자 tmp가 소유한 파일 검색.
sudo find / -user tmp
사용자 www-data가 소유한 파일을 전부 찾아 소유권을 nginx로 변경:
find / -user www-data -type f  -exec chown nginx {} \;
위 내용은 find 명령어의 기본 사용 방법을 설명하였습니다.
이제 Linux에서 파일을 검색하는 가장 기본적인 방법을 익히셨기를 바랍니다.