(퍼옴)
grep 이란,
파일들 속의 문자열을 찾는 프로그램(또는 명령어)입니다.
유닉스용으로 개발되었는데, 지금은 Cygwin(시그윈)을 설치하면 윈도우의 도스창(명령 프롬프트)에서도 사용할 수 있습니다.
grep 의 주요한 옵션과 사용법 예제
grep [옵션] <찾을문자열> [찾기 대상이 될 파일명]
이런 식으로 옵션과 문자열을 지정합니다. (주의! 옵션은 대소문자를 엄격히 구분합니다.)
가령
grep 맹구 *
라고 하면, 현재 디렉토리(폴더)의 모든 파일들 중에서, "맹구"라는 문자열이 들어 있는 파일을 찾아서 그 문자열이 들어 있는 행을 화면에 출력합니다.
grep -n 맹구 *
이렇게 하면 그 행의 행번호까지 출력
grep -n 맹구 *.txt
.txt 라는 확장자를 가진 파일만을 대상으로 찾기
grep -v 맹구 *
모든 파일에서 "맹구"라는 문자열이 없는 행만을 출력
grep -i foo *
대소문자 구분없이, foo Foo FOO fOO 등의 문자열 찾기
grep -r foo *
서브디렉토리까지 foo 라는 문자열 찾기
grep -i -r foo *
대소문자 구분없이, 그리고 하위디렉토리까지, foo 라는 문자열 찾기
등등입니다.
grep 으로 문자열을 찾으면, 그 결과가 화면으로 출력되는데, 그냥 눈으로 보는 것에 그치는 것이 아니라, 재지향(Redirection)을 사용하여 결과를 다시 파일로 저장한 후 다른 작업에 사용하는 것이 보통입니다.
예를 들어
grep -n 맹구 *.txt
라는 명령의 출력 결과를 out.txt 라는 파일로 저장하려면
grep -n 맹구 *.txt > out.txt
이렇게 하면 됩니다.
find 명령어
원하는 특정 파일을 디렉토리를 탐색하여 찾는다. find는 매우 강력한 도구로 지정된 조건에 만족하는 파일을 찾는다. 파일의 조건은 이름이나 크기, 날짜 등 다양하게 지정할 수 있다.
2. 문법
# find [ 경로 ] 탐색 조건
3. 옵션-type pattern 형식이 pattern인 것.
b : block device file, c: character device file, d: directory
p : named pipe, f: regular file, l:symbolic link, s:socket
-name 파일명 파일명으로 검색
-size 크기로 검색
-exec 명령 {}\; 검색된 결과에 대해서 지정한 명령을 적용
-user 사용자명 사용자명 소유의 파일을 검색
-amin n n분 이전에 접근한 파일
-atime n n*24시간 이전에 접근한 파일
-ctime n n*24시간 이전에 파일의 상태가 변경된 파일
-mtime n n*24시간 이전에 파일의 내용이 변경된 파일
-empty 크기가 0인 일반 파일 또는 디렉토리
-name 파일명 : 찾고자 하는 파일의 이름을 정한다. 와일드 카드도 가능하다.
-perm 모드 : 파일 권한(permission)이 일치되는 것을 찾는다. 원하는 권한은 ls로 볼 수 있는 형태와 같이 지정한다.
-links : 특정 개수의 링크를 가진 파일을 찾는다. 물음표 부분에 링크의 숫자를 표기한다.
-size : 파일의 크기가 일치하는 것을 탐색한다. 파일 크기는 블록단위로 물음표 부분에 지정한다. 한 블록은 512바이트로 내정되어 있지만 블록 숫자 뒤에 단위로 k자를 붙이면 1키로바이트 크기의 블록 숫자로 간주된다.
-user 사용자 : 파일 사용자의 ID에 따라서 검색한다. 로그인 이름이나 번호 모두가 가능하다.
-exec 명령 : 원하는 검색 조건에 맞는 파일을 찾으면 명시된 명령을 실행한다. 명령의 끝은 \;을 사용하여 끝낸다. find가 검색해낸 파일의 이름을 인수로 사용하고 싶다면 그 위치에 {}를 사용한다.
-newer 파일 : 어떤 파일보다 최근에 갱신된 모든 파일을 검색한다.
4. 사용방법 및 정보
단순한 파일을 찾는 것은 물론, 다양한 조건(파일 모드, 파일 타입, 크기, 시간 등)을 이용하여 원하는 파일 들을 찾을 수 있다.
가) /home 디렉토리 아래의 파일들 중 디렉토리 파일을 검색
<shell> |
나) 홈 디렉토리 아래에서 크기가 5096kb 이상인 파일을 찾아 자세한 정보(ls ?l)을 출력한다.
<shell> |
다) /usr 디렉토리 내에서 지난 24시간 동안 사용되었던 확장명이 jpg인 모든 파일을 찾아 그 내용을 자세히 출력 시켜준다.
[root@sense ~]# find /usr -name “*.jpg” -atime -1 -exec ls ?l {} \; |
라) dev 디렉토리 내에 빈 파일들을 찾는다.
|
'Software Science' 카테고리의 다른 글
[Python] 안녕파이썬 (강의) (0) | 2018.04.19 |
---|---|
[Linux] gvim 환경 설정 하기 (0) | 2018.04.01 |
[Linux] 환경설정 (.bashrc) (0) | 2018.04.01 |
[Linux] Make 파일 (0) | 2018.04.01 |
[Linux] vi&vim 편집기 명령어 (0) | 2018.04.01 |