본문으로 건너뛰기

Linux에서 find 명령어를 사용하여 파일 검색하기

· 약 6분

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로 끝나는 파일 검색.

예시:

Linux中使用find命令查找文件

파일 이름으로 파일 검색하기

파일 이름으로 검색할 때는 -name 옵션을 사용합니다.

예제: /etc/nginx 디렉토리에서 nginx.conf 파일 검색.

find /etc/nginx -type f -name nginx.conf

대소문자를 구분하지 않고 검색하려면 -iname옵션 사용:

find /etc/nginx -type f -iname Nginx.conf

Linux中使用find命令查找文件

파일 유형으로 검색하기

-type 옵션을 사용하여 파일 유형을 기반으로 검색할 수 있습니다.

  • f: 일반 파일

  • d: 디렉토리

  • l: 심볼릭 링크

  • c: 문자 장치*

  • b: 블록 장치

  • p: 명명된 파이프(FIFO)

  • s: socket

예제: 현재 디렉토리에서 디렉토리 검색.

find . -type d

Linux中使用find命令查找文件

디렉토리 또는 파일 권한을 재귀적으로 설정하려면 아래와 같이 명령어 사용이 가능:

sudo find /var/www/html -type d -exec chmod 0777 {} \;
sudo find /var/www/html -type f -exec chmod 0666 {} \;

执行命令前后对比:

Linux中使用find命令查找文件

파일 크기로 검색하기

-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에서 파일을 검색하는 가장 기본적인 방법을 익히셨기를 바랍니다.