Linux

[Linux] 파일 시스템에서 검색하기 : find

nayoungs 2024. 11. 24. 02:33
728x90

find 명령어는 리눅스 파일 시스템 내에서 특정 파일이나 디렉토리를 검색하는 데 사용할 수 있다. 다양한 조건을 기반으로 파일과 디렉토리를 검색할 수 있어, 상당히 유용하다.

 

find 의 기본적인 구문은 다음과 같다.

find [검색 경로] [옵션] [조건]

검색 경로는 검색할 디렉토리의 경로를 지정한다. . 을 사용하면 현재 디렉터리, / 를 사용하면 디렉터리부터 검색한다. 이때 접근 권한이 없는 경로에 대해서는 Permission Denied가 발생한다.

 

주요 옵션과 조건은 다음과 같다.

옵션 설명
-name 특정 이름을 가진 파일을 검색한다.
-iname 대소문자를 구분하지 않고 파일 이름을 검색한다.
-type 파일의 유형을 지정한다. f 는 일반 파일, d 는 디렉토리를 의미한다.
-size 파일 크기를 기준으로 검색한다. 예를 들어, +100M 은 100MB 보다 큰 파일을 찾는다.
-mtime 파일의 수정 시간을 기준으로 검새한다. 예를 들어, -mtime -7 은 최근 7일 이내에 수정된 파일을 찾는다.
조건 설명
-exec 찾은 파일에 대해 특정 명령어를 실행한다.
-print 검색 결과를 출력한다. (기본값)
-delete 찾은 파일을 삭제한다.

 

사용 예제

현재 디렉토리에서 example.txt 라는 파일을 찾기 위해 다음과 같이 작성할 수 있다.

$ find . -name "example.txt"

현재 디렉토리에서 특정 확장자를 가진 파일을 찾기 위해 다음과 같이 작성할 수 있다.

$ find . -name "*.jpg"

현재 디렉토리에서 대소문자를 구분하지 않고 README 파일을 찾기 위해 다음과 같이 작성할 수 있다.

$ find . -iname "README"

현재 디렉토리에서 100MB 이상의 파일을 찾기 위해 다음과 같이 작성할 수 있다.

$ find . -type f -size +100M

현재 디렉토리에서 최근 7일 내에 수정된 파일을 찾기 위해 다음과 같이 작성할 수 있다.

$ find . -type f -mtime -7

현재 디렉토리에서 .log 파일을 찾아서 삭제하기 위해 다음과 같이 작성할 수 있다.

$ find . -name "*.log" -exec rm () \\;

이처럼 find 명령어는 리눅스 시스템에서 파일을 검색하거나 디렉토리 검색을 위해 유용하게 사용할 수 있다.

 

 

 

728x90