Sever/Linux Command

[Linux] CentOS 19. 파일 검색, 패턴 검색 ( find, grep )

곰시기 2020. 11. 3. 12:39
  1. 파일 및 디렉터리 검색 - find
    1. # find [경로] [옵션 / 정규식] [파일명]
      • 현재 디렉토리부터 하위 디렉터리까지 주어진 조건을 가지고 탐색하여 결과를 출력해주는 명령어
      • 접근 제한된 파일까지 탐색하지는 않음
    2. 옵션
      옵션 설명
      -name 주어진 이름의 파일이나 디렉토리를 찾는다
      -user 지정한 사용자의 파일이나 디렉토리를 찾는다
      -group 지정한 그룹 소유의 파일이나 디렉토리를 찾는다
      -uid 지정한 UID 소유의 파일이나 디렉토리를 찾는다
      -gid 지정한 GID 소유의 파일이나 디렉토리를 찾는다
      -perm 지정한 퍼미션 값을 가진 파일이나 디렉토리를 찾는다
      -type 지정한 파일 유형만 찾는다
      d : 디렉토리, f : 일반 파일, l : 링크 파일, b : 블록 디바이스, c : 캐릭터 디바이스,
      p : 파이프 디바이스, s : 소켓 파일
      -atime n +n : n보다 오래된 파일
      -n : n일부터 지금까지 접근한 파일
      -ctime n change time 기준 탐색 ( meta data 변경기준 )
      -mtime n modify time 기준 탐색 ( 내부내용 수정 기준 )
      -mmin n time과 다르게 일이 아니라 분단위 기준
      -empty 빈 파일을 탐색
      -exec 찾아진 파일과 연계하여 명령을 내리는 옵션 결과는 {} 로표시 \;로 마무리
      -ls ls -l과 같은 의미
      -size n +n은 n보다 큰 파일 -n은 작은 파일
      -inum n node번호가 n인 파일
      -iname 대소문자 구분없이 이름으로 탐색
      -maxdepth n 현재 디렉토리 기준 n 깊이까지만 탐색
      -mindepth n 현재 디렉토리에서 n깊이에 있는 디렉터리부터 하위 디렉터리 탐색
      -prune 찾은 결과 중 디렉토리 해당되면 그 이름만 출력 하위 탐색 안 함
      -newer 해당 옵션 뒤에 적힌 파일보다 최근에 변경된 파일만 탐색 ( 내용 )
      -cnewer 해당 옵션 뒤에 적힌 파일보다 최근에 변경된 파일만 탐색 ( 파일 상태 )
      2>dev/null 탐색 명령 맨 마지막에 추가 시 퍼미션 디나이드 에러 출력 안 함
    3. 기타
  2. 특정 문자열 탐색 - grep
    1. # grep [옵션] [정규식] [파일]
      • 단순 문자열 매칭이 아닌 정규식을 이용한 패턴 매칭
    2. 옵션 ( 정규표현식 )
      옵션 설명
      -E 패턴을 정규 표현식으로 확장
      -F 패턴을 분리된 문자열로 설정
      -G 기본 정규식 패턴
      -P perl 기본 정규식 패턴
      -e 다음 패턴을 정규식으로 사용
      -f 파일로부터 패턴을 포함
      -i 대소문자 구분하지 않음
      -w 패턴이 전체 단어와 일치하는 행만 탐색
      -x 해당 라인과 일치하는 문자열만 탐색
      -z 데이터가 null이면 newline하지 않음
    3. 옵션 ( 기타 기능 옵션 )
      옵션 설명
      -s 오류 메시지 출력 안 함
      -v 불일치 라인을 출력
    4.  옵션 ( 출력 제어 옵션 )
      옵션 설명
      -m NUM 만큼 일치되면 종료
      -b 해당 라인의 offset byte 함께 출력
      -n 라인 번호를 출력
      -H 매치되는 파일명을 출력
      -h 해당 파일명 출력하지 않음
      -o 패턴과 일치하는 라인의 일부만 표시
      -q 모든 출력을 하지 않음
      -a --binary-files = text와 동일
      -I --binary-files = without-match와 동일
      -d 디렉터리 제어 설정 'read', 'recurse', 'skip'
      -D 디바이스 제어 설정 'read', 'skip'
      -r 하위 디렉터리까지 탐색
      -R ?
      -L 불일치하는 파일명만 출력
      -l 일치하는 파일명만 출력
      -c 파일의 일치하는 라인 수를 출력
      -T 탭을 정렬
      -Z 파일명이 null인 것만 출력
    5. 옵션 ( 텍스트 제어 옵션 )
      옵션 설명
      -B 선행 컨텍스트만 출력
      -A 후행 컨텍스트만 출력
      -C 해당 라인만 출력
      -NUM -C와 같음
      ex) grep -inr 'gom`s'* : 현재부터 하위 디렉토리내의 모든파일을 대상으로 대소문자 구분없이 'gom`s'를 탐색하여 라인 번호와 함께 출력