728x90

파일 내 내용 검색시

grep -i '찾고자하는내용' file명

ex) grep -i 'fileupload.jsp' localhost_access_log.20190425

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

리눅스 파일명으로 검색  (0) 2020.03.12
특정 IP만 ssh 접속 허용하기  (0) 2019.05.21
리눅스 파티션 관리  (0) 2016.01.14
apache server 버전 확인  (0) 2015.09.14
리눅스 언어 설정  (0) 2015.07.24
728x90

1. Syntax

# find path-name expression

2. Operands

* path-name : 상대 path-name 또는 절대 path-name 모두 사용가능

* 주로 사용하는 expression

-mtime n : modify time 으로 검색

-perm [-]mode : file permission 으로 검색

-size n[c] : file size 로 검색

-user user-name : file owner 로 검색

-exec command : 명령어 수행

-ls : find 결과에 대한 ls -l 명령을 수행해 dispaly

-name filename filename과 일치하는 파일을 찾음(*,? 또는 and가 사용될 수 있으며 이들은 따옴표 안에 표시를 하거나 백슬래시를 앞에 주고 사용함)

-print 현재의 경로 이름을 표시

-perm 모드 파일 권한(permission)이 일치되는 것을 찾는다. 원하는 권한은 ls로 볼수 있는 형태와 같이 지정한다.

-type ? 형태가 같은 파일을 찾는다. 물음표(?) 부분에 디렉토리는 d, 파이프는 p, 심볼릭 링크는 l, 소켓은 s, 블록 파일은 b, 일반 파일은 f 등의 기호를 사용한다.

-links ? 특정 개수의 링크를 가진 파일을 찾는다. 물음표 부분에 링크의 숫자를 표기한다.

-size ? 파일의 크기가 일치하는 것을 탐색. 파일 크기는 블록단위로 물음표 부분에 지정한다. 한 블록은 512바이트로 내정되어 있지만 블록 숫자 뒤에 단위로 k자를 붙이면 1킬로바이트 크기의 블록 숫자로 간주 된다.

-uesr 사용자 파일 사용자의 ID에 따라서 검색. 로그인 이름이나 번호 모두가 가능하다.

-atime ? 최근 며칠내에 액세스한 파일을 검색. 날짜수는 ?에 명시한다.

-exec 명령 원하는 검색 조건에 맞는 파일을 찾으면 명시된 명령을 실행한다. 명령의 끝은 \;을 사용하여 끝낸다. find가 검색해낸 파일의 이름을 인수로 사용하고 싶다면 그 위치에 {}를 사용한다.

-newer 파일 어떤 파일보다 최근에 갱신된 모든 파일을 검색한다.

3. Example

# find . -name "sc*" -print 또는 # find . -name "sc*"

/* 현재 directory 를 기준으로 sc로 시작하는 file 을 찾아 display */

# find ./ -mtime 30 -print -exec rm {} \;

/* 모든 directory 에서 30일 전에 수정된 file 을 display 하고 그 file 들을 삭제함 */

# find . -perm -4000 -user root -ls

/* root user 의 setuid 가 정의되어 있는 file 을 찾아 display */

# find . -size +1000000c -ls

/* file size 가 1MB 가 넘는 것을 찾아 display */

# find . -size +1000000c -print -exec rm {} \;

/* file size 가 1MB 가 넘는 것을 찾아 display 하고 그 file 들을 삭제함 */

4. 문자열찾기 방법 1 - 영어만 주로 가능
# grep -rw "찾는문자열" ./

문자열찾기 방법 2 - 대/소문자 구분 안하고 검색
# grep -i -l "찾는문자열" * -r 2> /dev/null

문자열찾기 방법 3 - 한글, 영어 모두 가능
# find . -exec grep -l "찾는문자열" {} \; 2>/dev/null

문자열찾기 방법 4 - 한글,영어, 대소문자 안가리고 검색
# find . -exec grep -i -l "찾을문자열" {} \; 2>/dev/null

문자열찾은 후 치환
# find . -exec perl -pi -e 's/찾을문자열/바꿀문자열/g' {} \; 2>/dev/null

파일명 찾기
# find ./ -name 파일명 -type f

파일명 찾기(대소문자 구별없음)
# find ./ -iname 파일명 -type f

디렉토리 찾기
# find ./ -name 파일명 -type d

디렉토리 찾기(대소문자 구별없음)
# find ./ -iname 파일명 -type d

특정 사용자 소유의 모든 파일을 찾을때는?
# find ./ -user "사용자 ID" -print

두세가지 문자열을 동시에 찾아야 할때는 egrep을 쓰면 아주 편합니다.
예를 들어
만약 그냥 grep으로 문자열1,2 를 찾으려면
ps -ef | grep 문자열1; ps -ef | grep 문자열2
와 같이 해야하는것을 egrep를 이용하면

ps -ef | grep '문자열1|문자열2'
와 같이 간단해집니다.

# egrep '(pattern1|pattern2|pattern3)' file.txt

4. 날짜와 날짜사이 생성파일 찾기

# touch -t 200110020000 a.txt
(2001년 10월 02일 00시 00분 생성날짜를 가진 파일 생성)
# touch -t 200810312359 b.txt
(2001년 10월 26일 23시 59분 생성날짜를 가진 파일 생성)

# find ./ -newer a.txt -a ! -newer b.txt -ls
(a.txt 와 b.txt 파일 사이의 생성날짜를 가진 파일 검색)

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

톰켓설치  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
vi 명령 정리  (0) 2012.04.18
linux ftp client 사용법  (0) 2012.04.10
VI Editor 사용법  (0) 2012.03.23

+ Recent posts