hanker

Linux - 서버 내 파일 및 디렉터리 찾기 (find 명령어) 본문

SERVER/Linux

Linux - 서버 내 파일 및 디렉터리 찾기 (find 명령어)

hanker 2024. 10. 25. 01:08
반응형

서버 내에 무언가 설치를 했는데 대체 이 파일이 어디있는건지, 환경 설정해주는 파일은 어디로 갔는지.. 
File/Directory 찾는 방법에 대해서 알아보자
 

find 명령어

 
 

find 명령어 역할

 

find 명령어는 리눅스에서 파일 및 디렉터리를 검색하는 매우 유용한 도구이다.
다양한 옵션과 함께 사용하여 파일의 이름, 타입, 생성 날짜, 소유자, 크기 등을 기준으로 파일을 찾을 때 사용한다.

 

 
 
사용방법
find [경로] [조건]

- 경로: 검색할 디렉터리의 경로를 지정 (생략가능 : 생략하면 현재 디렉터리에서 검색)
- 조건: 파일 이름, 유형, 크기, 소유자 등의 검색 조건을 지정

반응형


 

1. 파일 이름으로 검색

- 파일 이름을 기준으로 검색할 때는 -name 또는 -iname 옵션을 사용 (iname은 대소문자를 구분하지 않는다)
▷ name : 대소문자 구분 O
▷ iname : 대소문자 구분 X

find -name "파일명"

-name 옵션 사용

find -iname "파일명"

-iname 옵션 사용 (대소문자를 구분하지 않고 검색)

 
 
 

2. 파일 유형으로 검색

파일의 유형을 기준으로 검색할 수 있다.
-type 옵션을 사용한다.
f : 파일
d : 디렉터리
l : 심볼릭링크

find ./ -type f    # 현재 경로에서 파일 찾기
find ./ -type d    # 현재 경로에서 디렉터리 찾기
find ./ -type l    # 현재 경로에서 심볼릭링크 찾기

 

 
 
 

3. 크기로 검색

파일의 크기를 기준으로 검색할 때는 -size 옵션을 사용한다.
크기의 단위를 함께 지정해야 한다. 
 c : 바이트
 k : 킬로바이트
 M : 메가바이트
 G : 기가바이트

find ./ -size +500k    # 현재 경로에서 파일크기가 500KB보다 큰 파일 검색
find ./ -size -500k    # 현재 경로에서 파일크기가 500KB보다 작은 파일 검색

 
 

4. 날짜 기준 검색

파일이 생성되거나 수정된 날짜를 기준으로 검색할 수 있다. 
▷ -mtime: 마지막으로 수정된 지 몇 일 지났는지 기준으로 검색 (n일 전)
▷ -atime: 마지막으로 접근한 지 몇 일 지났는지 기준으로 검색
▷ -ctime: 마지막으로 변경된 지 몇 일 지났는지 기준으로 검색
 

find ./ -mtime -3    # 현재 경로에서 3일 이내 수정된 파일 검색
find ./ -atime +1    # 현재 경로에서 1일 이상 접근하지 않은 파일 검색
find ./ -ctime -3    # 현재 경로에서 3일 이내 변경된 파일 검색

 

 
 

5. 소유자 및 권한으로 검색

파일의 소유자 또는 권한을 기준으로 검색할 수 있다.
-user: 특정 소유자의 파일 검색
▷ -group: 특정 그룹의 파일 검색
 -perm: 파일 권한을 기준으로 검색

find ./ -user hanker    # 현재경로에서 소유자가 hanker인 파일 검색
find ./ -group root     # 현재경로에서 소속그룹이 root인 파일 검색
find ./ -perm 777       # 현재경로에서 파일 권한이 777인 파일 검색

 
 

6. 조건에 따른 작업 수행

-exec 옵션을 사용하여 검색된 파일에 대해 명령을 수행할 수 있다.
명령어 끝에는 \; (역슬래시 + 세미콜론) 를 붙여야 한다.

find ./ -type f -exec chmod 777 {} \;           # 현재경로의 파일들의 파일 권한을 777로 변경
find ./ -type f -name "*.txt" -exec rm {} \;    # 현재경로에서 확장자가 txt인 파일들을 삭제

 
 
 

7. 여러 조건 조합

find 명령어는 여러 조건을 AND/OR로 조합할 수 있다.
▷ -a 또는 생략: AND 조건
▷ -o: OR 조건

find ./ -type f -size +1M -name "*.jar"            # 현재경로에서 1MB 이상의 jar파일 찾기
find ./ -type f -name "*.jar" -o -name "*.log"     # 현재경로에서 확장자가 jar OR log 인 파일 찾기

 
 

8. 심볼릭 링크 무시하기

심볼릭 링크를 무시하고 실제 파일만 검색하려면
 -P : 심볼릭 링크 무시
 -L  : 심볼릭 링크 무시 X

find -P ./      # 현재경로에서 심볼릭 링크를 링크처리하지 않고 파일로 인식하여 검색
find -L ./      # 현재경로에서 심볼릭 링크내부 파일들도 검색

 
 
 

9. 검색 깊이 제한

-maxdepth와 -mindepth 옵션을 사용하여 검색 깊이를 제한할 수 있다. (옵션을 사용하지 않으면 전체 검색)
-maxdepth n: 최대로 검색할 하위 디렉터리 깊이
-mindepth n: 최소로 검색할 하위 디렉터리 깊이

find ./ -maxdepth 2 -type d    # 현재경로에서 하위 2단계까지 디렉터리 검색
find ./ -mindepth 2 -type d    # 현재경로에서 하위 2단계부터 디렉터리 검색

 
 

10. 특정 패턴 제외하고 검색

-not 옵션을 사용하여 특정 패턴을 제외하고 검색할 수 있다.

find ./ -type f -not -name "*.log"    # 현재경로에서 확장자가 log인 파일을 제외한 모든 파일 검색

 
 

마치며
  • 파일 이름, 유형, 크기, 날짜, 소유자, 권한 등 다양한 조건을 통해 파일 검색
  • -exec 옵션을 사용하여 검색된 파일에 대해 작업을 자동으로 수행
  • 여러 조건을 조합하여 더욱 세밀하게 검색

 

설명보다 예제 만드는게 힘들다.

 
 
 
 
끝.
 

반응형