리눅스2015. 2. 5. 09:58

리눅스 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 {} \;


코어제이 홈페이지 제작 소개


코어제이 캔디 앱 소개


Posted by 코어제이