본문 바로가기
Server | Network

[BackUp] Find Command In UNIX

by 두루물 2011. 10. 5.

find . -name *.h |xargs grep 'bzero'
find . -type f -print | xargs grep -i "bzero" /dev/null
find . -type f -print | xargs grep -i "naccept" /dev/null 

find 명령어는 파일 시스템에서 주어진 조건으로 파일을 찾는다. 

사용법을 살펴보자. 
find 대상디렉토리 검색 조건 처리 방법 
  

대상 디렉토리 : 찾기를 시작할 디렉토리를 지정한다. 

검색 조건 : 찾을 조건을 지정한다. 
-name filename 파일 이름으로 찾는다. 
  
-atime +n access time 이 n일 이전인 파일을 찾는다. 
-atime -n access time이 n일 이내인 파일을 찾는다. 
-mtime +n n일 이전에 변경된 파일을 찾는다. 
-mtime -n n일 이내에 변경된 파일을 찾는다. 
-perm nnn 파일 권한이 nnn인 파일을 찾는다. 
-type x 파일 타입이 x인 파일들을 찾는다. 
-size n 사이즈가 n이상인 파일들을 찾는다. 
-links n 링크된 개수가 n인 파일들을 찾는다. 
  
-user username user이름으로 찾는다. 
  
-group groupname group 이름으로 찾는다. 
  

처리방법 : 찾은 파일을 어떻게 할 것인지를 지정한다. 
-print 찾은 파일의 절대 경로명을 화면에 출력한다. 
-exec cmd {}\;  찾은 파일들에 대해 cmd 명령어를 실행한다. 
  

예를 들어보자. 
$ find /user4 -name test* -print 
  
/user4 아래에서 파일이름이 test로 시작하는 모든 파일을 찾아서 화면에 보여준다. 

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

$ cd / 
$ find /usr -name *.c -print 
  
/usr 밑에 이름이 .c로 끝나는 모든 파일들을 찾아 경로명을 보여준다. 

$ cd / 
$ find $home -name who.txt -print 
  
home 디렉토리 아래에 who.txt라는 파일을 찾아 경로명을 보여준다. 

$ cd / 
$ find . -type d -print 
  
파일 타입이 d인 파일을 찾아 경로명을 화면에 출력한다. 

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

$ cd / 
$ find . -perm 700 -print 
  
파일 권한이 700인 파일을 찾아준다. 

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

$ cd / 
$ find . -size +1024 -print 
  
파일의 블럭 크기가 1024 이상인 파일을 찾아준다. 

$ cd / 
$ find . -name core -size +2048 -print 
  
파일 이름이 core이고 크기가 2048블럭 이상인 파일을 찾아준다. 

$ cd / 
$ find . -user unix01 -print 
  
파일 소유자가 unix01인 파일을 찾아준다. 

$ cd / 
$ find . -group unix -print 
  
사용자그룹이 unix인 파일을 찾아준다. 

$ cd / 
$ find . -atime +30 -print 
  
30일 이전에 억세스되었던 파일을 찾는다. 

$ cd / 
$ find . -mtime -7 -print 
  
7일 이내에 수정된 적이 있는 파일을 찾는다. 

$ cd / 
$ find . -name core -exec ls -l {} \; 
  
이름이 core인 파일을 찾아서 ls -l 한다. 

$ cd / 
$ find . -name \*.c -atime +30 -exec ls -l {} \; 
  
30일 이전에 억세스된 파일 중 *.c를 찾아 ls -l 한다. 

$ cd / 
$ find . -name core -exec rm -i {} \; 
  
현재 디렉토리 밑에서 이름이 core인 파일을 찾아 지운다(지우기 전에 정말 지울 지를 물어본다.)

'Server | Network' 카테고리의 다른 글

adduser 새유저에 sudo 권한 주기  (0) 2011.11.16
OCKILL Error Log  (0) 2011.10.05
[BackUp] crontab 등록방법  (1) 2011.10.05
[Tip] AIX ThreadSafe Socket  (0) 2011.10.05
Error: 2014 (CR_COMMANDS_OUT_OF_SYNC) with SELECT command  (1) 2011.02.15