728x90

find
 
고영남 2000/110/18

find 명령어는 파일 시스템에서 주어진 조건으로 파일을 찾을 때 아주 유용하게 쓰입니다.
대표적인 용도는 오래되거나 크거나, 사용하지 않는 파일들을 찾을 때 그 위력을 발휘합니다.
기본적인 사용 방법은 다음과 같습니다.

 


%> find path operators
%> find 대상디렉토리 검색조건 처리방법

 

검색종류


 

-name filename filename 파일 이름으로 찾는다.
-user username user이름으로 찾는다.
-group groupname group 이름으로 찾는다.
-perm nnn 파일 권한이 nnn인 파일을 찾는다. (ex. -perm 755)
-type x 파일 타입이 x인 파일들을 찾는다.
( f : 일반파일, b : 블록 특수파일,
d: 디렉토리, l : 심볼릭 링크 등. )
-atime +n access time 이 n일 이전인 파일을 찾는다.
-atime -n access time이 n일 이내인 파일을 찾는다.
-mtime +n n일 이전에 변경된 파일을 찾는다.
-mtime -n n일 이내에 변경된 파일을 찾는다.
-size n 사이즈가 n이상인 파일들을 찾는다.
-links n 링크된 개수가 n인 파일들을 찾는다.
-print 표준출력
-exec command command 실행.
-operator -a and 연산, -o or 연산 
! not 연산, \( expression \)

 

 

몇가지 예를 들어 설명드리겠습니다.

 


$ find /home. -name ping -print

 


root 디렉토리 밑에서 파일이름이 ping인 파일을 찾아 절대 경로명을 화면에 출력한다.

 

 


$ find /home -name test* -print 
 


/home 아래에서 파일이름이 test로 시작하는 모든 파일을 찾아서 화면에 보여줍니다.

 

 


$ find /home -name *.c -print 
 


/home 밑에 이름이 .c로 끝나는 모든 파일들을 찾아 경로명을 보여준다.

 

 


$ find /home -name who.txt -print 
 


home 디렉토리 아래에 who.txt라는 파일을 찾아 경로명을 보여준다.

 

 


$ find /home -name core -size +2048 -print 
 


파일 이름이 core이고 크기가 2048블럭 이상인 파일을 찾아준다.

 

 


$ find /home -name core -exec ls -l {} \;

 


이름이 core인 파일을 찾아서 ls -l 한다.

 

 


$ find /home -name core -exec rm -i {} \;

 


현재 디렉토리 밑에서 이름이 core인 파일을 찾아 지운다(지우기 전에 정말 지울 지를 물어본다.)

 

 


$ find /home -user unix01 -print
 


파일 소유자가 unix01인 파일을 찾아준다.

 

 

$ find /home -group unix -print
 


사용자그룹이 unix인 파일을 찾아준다.

 

 


$ find /home -perm 700 -print 
 


파일 권한이 700인 파일을 찾아준다.

 

 


$ find /home \ ( -perm 400 -o -perm 200 ) -print 
 


파일 권한이 400인 파일과 200인 파일을 찾아준다.
(주의 : “\”의 앞뒤에 space 가 반드시 있어야 한다.)

 

 

$ find /home -type d -print 
 


파일 타입이 d인 파일을 찾아 경로명을 화면에 출력한다.

 

 


$ find /home -type c -print
 


/dev디렉토리 아래에서 파일 타입이 c인 파일을 찾아 경로명을 보여 준다.

 

 


$ find /home -atime +30 -print

 


30일 이전에 억세스되었던 파일을 찾는다.

 

 


$ find /home -mtime -7 -print

 


7일 이내에 수정된 적이 있는 파일을 찾는다.

 

 


$ find /home -size +1024 -print
 


파일의 블럭 크기가 1024 이상인 파일을 찾아준다.

 

 


$ find /home -name *.bak -exec rm -rf {} \;
 


파일 이름이 .bak 로 끝나는 파일을 찾아서 지운다.

 

 


$ find /home -name \*.c -atime +30 -exec ls -l {} \; 
 


30일 이전에 억세스된 파일 중 *.c를 찾아 ls -l 한다.

 

 


CopyLeft 1999 - 2000 by GYN
mailto gyn90001@hanmail.net

 

원문 링크 : http://coffeenix.net/doc/misc/find.html

728x90

+ Recent posts