리눅스 find 명령어에 대해 알아보자.
find 명령어
리눅스에서 파일, 파일 내 검색을 할 수 있는 명령어에 대해 알아보자.
지정된 경로를 입력한 옵션, 조건에 맞게 파일을 찾아주는 기능이다.
로그인한 사용자보다 접근권한이 높은 디렉터리나 파일은 검색할 수 없다.
여기서 옵션 앞에 경로를 넣는데 입력하지 않으면 현재 디렉터리를 기준으로 검색한다.
grep 명령어나 expression을 어떻게 활용하느냐에 따라서 파일 내용 검색 및 다른 여러 유용한 기능을 활용할 수 있다.
find [경로] [옵션] [expression]
옵션
-name {문자열}: 파일이름이 문자열과 일치하는 파일을 찾는다.
문자열에는 다음과 같은 형식으로 사용할 수 있다.
log: 파일이름이 log인 파일
*log: 마지막 문자열이 log로 끝나는 모든 파일
log*: log로 시작하는 파일
*log*: log라는 문자가 어디든 상관없이 포함하는 파일
?log: 첫 글자는 어떤 문자라도 상관없고 뒤에 문자열이 log인 파일
??log: 앞에 두 글자는 어떤 문자라도 상관없고 뒤에 문자열이 log인 파일
-user {사용자}: 특정 사용자 소유권인 파일을 찾을 때 사용한다.
-perm {퍼미션}: 명시된 퍼미션으로 된 파일을 찾을 때 사용한다.
-exec: 찾아진 파일 등과 연계해서 명령을 내리게 하는 옵션으로 사용하기 위해서는 마지막에 \;를 입력해야 한다.
-type {파일종류}: 디렉터리(d), 파이프(p), 심볼릭 링크(l), 소켓(s), 블록 파일(b), 문자 파일(c), 일반 파일(f) 등을 사용한다.
-links {숫자}: 특정 개수의 링크를 가진 파일을 찾는다.
-size {파일 크기 n}: 파일 크기(블록단위)가 일치하는 것을 검색한다. +n은 n 블록보다 큰 파일, -n은 n 블록보다 작은 파일, nc는 n 문자 길이의 파일을 찾는다.
-atime {일 n}: n일 이전에 접근한 파일을 찾는다.
-ctime {일 n}: n일 이전에 변경된 파일을 찾는다.
-mtime {일 n}: n일 이전에 수정된 파일을 찾는다.
-mmin {분 n}: n분 전에 마지막으로 수정된 파일을 찾는다.
-newer {파일}: 지정한 파일보다 최근에 갱신된 파일을 검색한다.
현재 디렉터리를 기준으로 log가 포함된 모든 파일을 찾아보자.
[corej@localhost ~]$ find ./ -name *log*
/home/corej/Desktop 디렉터리 아래 퍼미션이 755인 파일을 찾아보자.
[corej@localhost ~]$ find Desktop -perm 755
[corej@localhost ~]$ find /home/corej/Desktop -perm 755
현재 디렉터리를 기준으로 sql 파일 중 corej를 포함한 파일을 찾아보자.
[corej@localhost ~]$ find ./ -name "*.sql" | xargs grep corej
검색어에 색깔 넣으려면
[corej@localhost ~]$ find ./ -name "*.sql" | xargs grep --color=auto corej
만약 CoreJ, COREJ로 작성을 한 파일은 검색되지 않을 것이다.
대소문자 구분 없이 검색해 보자.
[corej@localhost ~]$ find ./ -name "*.sql" | xargs grep -i corej
30일이 지난 파일을 삭제해 보자.
[corej@localhost ~]$ find ./ -mtime +30 -print -exec rm -rf {} \;
10분이 지난 파일을 삭제해 보자.
[corej@localhost ~]$ find ./ -mmin +10 -print -exec rm -rf {} \;
파일이름이 log를 포함하면서 확장자가 txt인 파일 중 30일이 지난 파일을 삭제해 보자.
[corej@localhost ~]$ find ./ -mtime +30 -name "*log*.txt" -print -exec rm -rf {} \;
파일 크기가 2메가 이상인 파일을 삭제해 보자. (k는 KB)
[corej@localhost ~]$ find ./ -size +2048k -print -exec rm -rf {} \;
'리눅스' 카테고리의 다른 글
리눅스 chmod 명령어와 chown 명령어, chgrp 명령어에 대해 알아보자. (0) | 2015.02.05 |
---|---|
리눅스 grep 명령어에 대해 알아보자. (0) | 2015.02.05 |
리눅스 less 명령어와 파이프, 리다이렉션에 대해 알아보자. (0) | 2015.02.04 |
리눅스 rm 명령어와 cat 명령어에 대해 알아보자. (0) | 2015.02.04 |
리눅스 cp 명령어와 mv 명령어에 대해 알아보자. (8) | 2015.02.04 |