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 |