2.log

리눅스 find 정리 본문

HACKING/Bandit+

리눅스 find 정리

2.log 2023. 3. 21. 17:26
728x90
반응형

 

find

리눅스에서 접근할 수 있는 파일시스템에 파일/디렉토리 찾는 명령어

 

사용법

$ find [옵션] [경로] [표현식]

 

옵션

  • P : 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용
  • L : 심볼릭 링크에 연결된 파일 정보 사용
  • H : 심볼릭 링크를 따라가지 않으나, Command Line Argument를 처리할 땐 예외
  • D : 디버그 메시지 출력

 

경로

상대 경로, 절대 경로 모두 가능. 대부분의 리눅스의 경우 이 경로 인자 값을 생략하면 현재 위치(.)를 입력받은 것으로 간주

하지만 유닉스의 경우 이 경로를 입력받지 않으면 명령어 실행이 안되니 유의

 

 

자주 사용되는 표현식

  • name : 해당 이름의 파일을 찾음 (정규 표현식 활용 가능)
  • type : 지정된 파일 타입에 해당하는 파일 검색
    • d : 디렉터리
    • f : 일반적인 파일
    • l : 심볼릭 링크
  • empty : 빈 디렉터리 or 크기가 0인 파일 검색
  • delete : 검색된 파일 or 디렉터리 삭제
  • exec : 검색된 파일에 대해 지정된 명령 실행
  • path : 지정된 문자열 패턴에 해당하는 경로에서 검색
  • executable : 현재 사용자 기준으로 실행 가능한 파일 검색
  • readable : 현재 사용자 기준으로 읽을 수 있는 파일 검색
  • writable : 현재 사용자 기준으로 쓸 수 있는 파일 검색
  • user : 지정 사용자 소유의 파일 검색
  • group : 지정 그룹에 속한 파일 검색
  • print : 검색 결과를 출력. 검색 항목은 newline으로 구분 (기본 값)
  • print0 : 검색 결과를 출력. 검색 항목은 null로 구분
  • size : 파일 크기를 사용하여 파일 검색
    • b : 블록단위
    • c : byte
    • k : kibibytes
    • M : mebibytes
    • G : gibibytes
    • w : 2byte 워드
  • mindepth : 검색을 시작할 하위 디렉터리 최소 깊이 지정
  • maxdepth : 검색할 하위 디렉터리의 최대 깊이 지정
  • atime : n일 이내에 액세스 된 파일을 찾음
  • ctime : n일 이내에 만들어진 파일을 찾음
  • mtime : n일 이내에 수정된 파일을 찾음
  • cnewer file : 해당 파일보다 최근에 수정된 파일을 찾음

 

 

표현식 연산자 적용

  • ([EXPR]) : 연산자 우선순위 설정. "()"
  • NOT 연산자 (!, not)
    • ![EXPR]
    • -not [EXPR]
  • AND 연산자 (-a, and)
    • [EXPR1] -a [EXPR2]
    • [EXPR1] and [EXPR2]
    • 생략가능 : [EXPR1] [EXPR2]
  • OR 연산자 (-o, or)
    • [EXPR1] -o [EXPR2]
    • [EXPR1] or [EXPR2]

 

 

 

자주사용되는 find 명령어

NO 명령어 설명
1 find 현재 경로에 파일/디렉토리 표시
2 find [경로] [경로] 에 있는 모든 파일/디렉토리 표시
3 find [NAME] 현재 경로에 [NAME] 검색
4 find . -name [NAME] 현재 경로 하위 파일/디렉토리에서 [NAME]검색
5 find / -name [NAME] 루트 "/" 디렉토리 하위에서 [NAME] 검색
6 find ~ -name [NAME] 사용자의 홈디렉토리 하위에서 [NAME] 검색
7 find . -name "*STR*" 현재 경로 하위에서 특정 문자열(STR) 포함하는 파일/디렉토리 검색
8 find . -empty 현재 경로 하위에서 빈 디렉토리 or 크기가 0인 파일 검색
9 find . -name "*.EXT" -delete 현재 경로 하위에서 특정 확장자(.EXT)의 파일 검색 후 삭제처리
10 find . -name [NAME] -print0 현재 경로 하위에서 [NAME] 을 검색하여 줄 파꿈 없이 표시
11 find . -name [NAME] -type f,d,I 현재 경로 하위 파일/디렉토리/심볼릭링크에서 [NAME]을 검색
12 find . -mtime N 현재 경로 하위에서 수정시간 기준 파일/디렉토리 검색
13 find . -size + [SIZE1]c -size -[SIZE2]c 현재 경로 하위에서 파일 사이즈로 검색
14 find . -maxdepth 1 - name [NAME] 현재 경로에서만 [NAME] 검색 (하위 디렉터리 미포함)
15 find . -perm 0664 현재 경로에서 특정권한의 파일/디렉토리 검색
16 find . -name [NAME] -exec ls -al {} \; 검색된 파일의 상세정보 출력 (ls 명령 실행)
17 find . -name [NAME] -exec grep "STR" {} \; 검색된 파일에서 문자열 검색 (grep 명령 실행)
18 find . -name [NAME] -exec cp {} [경로] \; 검색된 파일을 특정 [경로] 로 복사 (cp 명령 실행)
19 find . -name [NAME] -exec tar -xcvf [파일명] {} \; 검색된 파일로 압출파일 생성 (tar 명령 실행)
20 find . -name [NAME] > [FILE_NAME] 검색된 결과를 파일로 저장 (redirection ">" 실행)
21 find . -name [NAME] 2> dev/null 검색 결과 오류 메시지 출력 안함 (redirection ">" 실행)

 

 

 

 

출처

https://www.psjco.com/24

728x90
반응형
Comments