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