linux find, grep

반응형

안녕하세요. 이번에는 find 명령어와 grep 명령어에 대해서 포스트 하겠습니다.


find와 grep.. 둘다 무언가를 찾을 때 쓰는 명령어인데 두 명령어의 차이점은 find는 파하위폴더에 존재하는 '파일'을 찾는 명령어이고 grep은 하위폴더를 포함하여 존재하는 모든 파일에서 원하는 단어를 찾아주는 명령어 입니다.


find

- 파일 찾기

find <path> -<option>... -ox(-exec) <command> ... {} \;

{} : 검색한 파일에 대해 명령어 실행하게 해줌


grep

- 파일에서 패턴과 일치하는 내용 검색

- 정규표현식

grep <option> ... <pattren> file ...


위와 같이 정리할 수가 있는데 find먼저 자세히 살펴보면 검색할 수 있는 옵션이 크게 6가지가 있습니다.


(1). 파일의 이름으로 검색

-name

ex) find /etc -name "root"

( /etc 하위 디렉터리에서 root 이름이 들어간 파일을 찾아라)

(2). 파일의 타입으로 검색

-type (f, d, l, c, d)

ex) find /etc -type f

( /etc 하위 디렉터리에서 파일의 타입이 일반파일인 파일을 찾아라)


(3). 파일의 크기로 검색

-size (+10M, 10M, -10M)

ex) find /etc -szie +10M

( /etc 하위 디렉터리에서 파일의 크기가 10M 이상인 파일을 찾아라)


(4). 파일의 시간으로 검색

-atime (+1, 1, -1) : 접근시간

-mtime (+1, 1, -1) : 수정시간

-ctime (+1, 1 ,-1) : 변경시간

- 미래의 시간은 있을 수 없다. +이 미래가 아님

ex) find /etc -ctime +3

( /etc 하위 디렉터리에서 수정한지 3일된 이전의 파일을 찾아라)


(5). 파일의 소유자로 검색

-user

-group

ex) find /etc -user root

( /etc 하위 디렉터리에서 소유자가 root인 파일을 찾아라)


(6). 파일의 권한으로 검색

-perm

ex) find /etc -perm 644

( /etc 하위 디렉터리에서 권한이 644인 파일을 찾아라)


여기까지 find 명령어 옵션이었고 밑에는 grep 정규표현식입니다.


. : 임의의 한 문자

^ : 라인의 시작 문자 (ex. ^root)

$ : 라인의 끝 문자 (ex. root$)

[ ] : 문자 집합 (ex. rm file[12] -> file1, file2 rm)

[^] : 부정 (ex. [^a-z]

? : 임의의 한 문자가 0번 나오거나 1번 나오거나 (ex. abcd?)

* : 임의의 한 문자가 0번 나오거나 1번 이상 반복 (ex. abcd*)

+ : 임의의 한문자가 1번 이상 반보 (ex. abcd+)

{n} : n번 반복 (ex. abcd{2})

{n,} : n번 이상 반복

{,n} : 최대 n번 반복

{n,m} : n번에서 최대 m번 반복

( ) : 문자열

| : or

\ : escape


예를 들어 영문 소문자로만 이루어진 문자열을 출력할 때는

grep -P '[a-z]+ ' 이렇게 명령을 주면 됩니다.


find와 grep 명령어가 익숙해지려면 여러 옵션을 많이 사용하는 수 밖에 없겠네요!

이상으로 find, grep 명령어에 대한 포스트를 마치겠습니다.



반응형

'OS > linux' 카테고리의 다른 글

linux LVM  (0) 2016.10.06
linux RAID  (0) 2016.10.05
linux 백업  (0) 2016.10.03
linux 압축, 파일저장소  (0) 2016.10.03
linux 커널(kernel)  (3) 2016.10.02
TAGS.

Comments