본문 바로가기

Linux

Grep과 Find

1. grep

 - 입력에서 주어진 패턴을 포함하고 있는 줄을 찾아주는 명령, 파이프와 같이 많이 사용

   ex) ps aux | grep vsftpd   // 현재 시스템 프로세스 중 vsftpd 만 검색

 - 검색 패턴이 한개 이상인 경우 아래와 같이 옵션을 붙인다.

   ex) ps aux | grep -E 'httpd|mysql'

 - 많이 사용하는 옵션

   -n : 행번호 출력
   -l : 파일명만 출력
   -c : 패턴과 일치하는 라인의 갯수만 보여줌
   -v : 패턴을 포함하지 않는 행만 출력


 - 현재 디렉토리와 하위 디렉토리까지 패턴 검색시 find 와 같이 사용

   ex) find . -exec grep "패턴" {} \;

- 검색할 파일이나 경로 제외 시키기
       --exclude=GLOB
              Skip  files  whose  base  name  matches GLOB (using wildcard matching).  A file-name glob can use *, ?, and [...]  as wildcards, and \ to quote a wildcard or backslash
              character literally.
       --exclude-from=FILE
              Skip files whose base name matches any of the file-name globs read from FILE (using wildcard matching as described under --exclude).
       --exclude-dir=DIR

2. find

 - 옵션

  -atime n : n일전에 access 된 파일, + - 기호를 사용 범위 지정 가능
  -mtime m : m일전에 modify 된 파일, + - 기호를 사용 범위 지정 가능
  -newer [file] : file 보다 최근에 수정된 파일
  -size n : 512byte X n 길이의 파일
  -type c : 파일의 종류, f = file / d = directory
  -fstype [filesystem] : 파일 시스템 종류
  -name [패턴] : 파일 이름 검색, 와일드 카드 사용 가능 
  -perm p : 파일 access 퍼미션이 p 일때
  -user [user] : 파일 소유권이 user 인 파일
  -group [group] : 파일 그룹이 group인 파일
  -nouser(-nogroup) : 파일 소유자가 /etc/passwd(/etc/group)에 없는경우
  -uid(-gid) n : 파일 uid(gid)가 n 인경우
  -exec cmds : cmds 명령 수행, 반드시 마지막에 \; 로 끝나야함
 
- 유용한 예
  ex) find / -type f \(-perm -4000 -o -perm -2000\) > setuidgid
     => 디렉토리부터 파일의 setuid,setgid가 셋 되어 있는 파일을 찾아
          setuidgid파일로 redirection



'Linux' 카테고리의 다른 글

grep 과 find 2  (0) 2010.10.17
우분투(ubuntu) samba 사용  (0) 2010.09.17
[debian] Andromeda - customized rootfs  (0) 2009.02.27
Spitz/Install  (0) 2009.02.27
Ubuntu 8.10 in VMware  (0) 2009.02.23