사용방법 : find <경로> <연산자>
1) <경로>
find가 파일을 찾을 처음 위치를 지정한다.
예을 들어 '/'는 /(root)부터 찾고, '.'은 현재 디렉토리 부터 찾는다.
2) <연산자>
-print
find 명령의 결과를 화면에 보여 준다.
-name 파일명
파일명과 같은 파일을 찾는다. 와일드 카드(*)도 사용가능하다.
예) /home 폴더에서 화일명이 *.bak 인 화일을 찾는 예
find /home -name '*.bak' -print
-perm 모드
파일 퍼미션 조건이 일치하는 것만을 찾아 준다.
퍼미션은 읽기(r), 쓰기(w), 실행(x)하기 등으로 나타낸다.
예제) 현재의 디렉토리에서 000(----------)퍼미션모드의 파일들을 찾는 예
find . -perm 000 -print
-type 타입
파일의 타입을 지정하여, 찾고자하는 파일을 찾는다.
타입의 종류는 다음과 같다.
b : 블록 특수 파일(block device)
c : 캐릭터 특수 파일 (character deice)
d : 디렉토리(directory)
f : 일반파일(file)
l : 심볼릭 링크(link)
p : 파이프 (pipe)
s : 소켓 (socket)
예제) 현재 디렉토리 아래에 있는 서브디렉토리를 모두 찾을경우
find . -type d -print
-atime +n/-n/n
최근 n일 이전에 액세스된 파일을 찾아준다.(accessed time)
+n은 n일 또는 그보다 더 오래 전의 파일을
-n은 오늘 부터 n일 전까지의 파일을
n은 정확히 n일 전에 액세스되었음을 의미한다.
예) 전체 디렉토리에서 10일 이상 한번도 액세스하지 않은 디렉토리를 찾을경우 예
find / -atime +10 -type d -print
-ctime +n/-n/n
atime과 비슷하다. 다른 점은 atime은 얼마나 오래전에 파일을 액세스
하였는가를 검사하지만 ctime은 파일의 퍼비션을 마지막으로 변경시킨 날짜를
의미한다. (changed time)
최근 n일 이전에 액세스된 파일을 찾아준다.
+n은 n일 또는 그보다 더 오래 전의 파일을
-n은 오늘 부터 n일 전까지의 파일을
n은 정확히 n일 전에 수정되었음을 의미한다.
예) 현재 디렉토리 아래에서 최근 일주일 동안 수정된 파일을 찾는 예
find . -ctime -7 -print
-mtime +n/-n/n
ctime과 비슷하다. 다른 점은 ctime은 파일의 퍼미션을 변경시킨 날짜를 의미
하지만, mtime은 파일내의 data를 마지막으로 변경한 날짜를 의미한다.
(modified time)
최근 n일 이전에 액세스된 파일을 찾아준다.
+n은 n일 또는 그보다 더 오래 전의 파일을
-n은 오늘 부터 n일 전까지의 파일을
n은 정확히 n일 전에 수정되었음을 의미한다.
-user 유저네임
'-user' 부분에 지정한 유저 소유의 파일을 찾아준다.
예) / 내에서 nobody 권한의 파일이나 폴더를 찾는 예
find / -user nobody -print
-nouser
파일의 소유자가 없는 파일을 찾아 준다.
-group 그룹네임
지정한 그룹네임에 해당되는 파일을 찾아 준다.
-nogroup
파일의 소유자의 그룹이 없는 파일을 찾아 준다.
-exec 명령어 {} ;
find의 결과로 찾아낸 파일이나 디렉토리에 대해서 지정한 명령어를 실행(execute)한다.
참고로 {} 와 ;사이는 한 칸 띄워야 한다.
예) / 폴더에서 화일의 소유자가 없는 화일을 찾아 ls -l 로 보여주는 예
find / -nouser -print -exec ls -l {} \;
-size +n/-n/n[bckw]
n뒤에 아무것도 쓰지 않으면 기본적으로 n블럭 크기의 파일을 찾는다.
기본적으로 1블럭은 512바이트이다.
예) /home 폴더에서 파일 크기가 0인 파일을 모두 찾는 예
find /home -size 0 -print
예) 현재 디렉토리내에서 크기가 1024k 이상인 파일을 모두 찾아 보여주는예
find . -size +1024k -exec ls -l {} \;