System/OS

[linux] 간단한 find 명령어 설명(업데이트 해야 함)

by hooni posted Apr 23, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
1. 기능 
원하는 특정 파일을 디렉토리를 탐색하여 찾는다. find는 매우 강력한 도구로 지정된 조건에 만족하는 파일을 찾는다. 파일의 조건은 이름이나 크기, 날짜 등 다양하게 지정할 수 있다. 

2. 문법 
# find [ 경로 ] 탐색 조건 

3. 옵션-type pattern 형식이 pattern인 것. 
b : block device file, c: character device file, d: directory 
p : named pipe, f: regular file, l:symbolic link, s:socket 
-name 파일명 파일명으로 검색 
-size 크기로 검색 
-exec 명령 {}\; 검색된 결과에 대해서 지정한 명령을 적용 
-user 사용자명 사용자명 소유의 파일을 검색 
-amin n n분 이전에 접근한 파일 
-atime n n*24시간 이전에 접근한 파일 
-ctime n n*24시간 이전에 파일의 상태가 변경된 파일 
-mtime n n*24시간 이전에 파일의 내용이 변경된 파일 
-empty 크기가 0인 일반 파일 또는 디렉토리 
-name 파일명 : 찾고자 하는 파일의 이름을 정한다. 와일드 카드도 가능하다. 
-perm 모드 : 파일 권한(permission)이 일치되는 것을 찾는다. 원하는 권한은 ls로 볼 수 있는 형태와 같이 지정한다. 
-links : 특정 개수의 링크를 가진 파일을 찾는다. 물음표 부분에 링크의 숫자를 표기한다. 
-size : 파일의 크기가 일치하는 것을 탐색한다. 파일 크기는 블록단위로 물음표 부분에 지정한다. 한 블록은 512바이트로 내정되어 있지만 블록 숫자 뒤에 단위로 k자를 붙이면 1키로바이트 크기의 블록 숫자로 간주된다. 
-user 사용자 : 파일 사용자의 ID에 따라서 검색한다. 로그인 이름이나 번호 모두가 가능하다. 
-exec 명령 : 원하는 검색 조건에 맞는 파일을 찾으면 명시된 명령을 실행한다. 명령의 끝은 \;을 사용하여 끝낸다. find가 검색해낸 파일의 이름을 인수로 사용하고 싶다면 그 위치에 {}를 사용한다. 
-newer 파일 : 어떤 파일보다 최근에 갱신된 모든 파일을 검색한다. 

4. 사용방법 및 정보 
단순한 파일을 찾는 것은 물론, 다양한 조건(파일 모드, 파일 타입, 크기, 시간 등)을 이용하여 원하는 파일 들을 찾을 수 있다. 
가) /home 디렉토리 아래의 파일들 중 디렉토리 파일을 검색 
<shell> 
[root@sense ~]# find /home -type d 
/home 
/home/lebowski 
/home/mysql 
/home/sense 
/home/linuxone 
</shell> 


나) 홈 디렉토리 아래에서 크기가 5096kb 이상인 파일을 찾아 자세한 정보(ls ?l)을 출력한다. 
<shell> 
[root@sense ~]# find ~ -size +5096k -exec ls -l {} \; 
-rw-r--r-- 1 root root 669319168 Mar 11 17:10 /root/valhalla-i386-disc2.iso 
-rw-r--r-- 1 root root 5563716 Feb 28 11:21 /root/.mozilla/firefox/kazb7qu2.default/Cache/D0709ED3d01 
-rw-r--r-- 1 root root 714907648 Mar 5 17:25 /root/images/nuxone/NuxOne_v2.1_RPMS_CD2.iso
-rw-r--r-- 1 root root 596164608 Mar 5 17:01 /root/images/nuxone/NuxOne_v2.1_RPMS_CD1.iso
-rw-r--r-- 1 root root 318918656 Mar 5 17:18 /root/images/nuxone/NuxOne_v2.1_RPMS_CD3.iso
</shell> 


다) /usr 디렉토리 내에서 지난 24시간 동안 사용되었던 확장명이 jpg인 모든 파일을 찾아 그 내용을 자세히 출력 시켜준다. 
[root@sense ~]# find /usr -name “*.jpg” -atime -1 -exec ls ?l {} \; 


라) dev 디렉토리 내에 빈 파일들을 찾는다. 
[root@sense ~]# find /dev -type f -empty 


참고..

ctime - Many times this is understood as a creation time but that wrong. Ctime is change time of file stats such as ownership, what permissions it has etc.

mtime - File modification time. Value of mtime is updated when content of file changes.

atime - File access time. Value of atime is modified when file is opened.


- ctime : 파일의 정보가 변경된 시간 (chmod, chown 과 연관성 있음)
- mtime : 파일의 내용이 변경된 시간 (ls -l 에서 나오는 시간)
- atime : 파일을 열어본 시간 또는 디렉토리에 cd 명령으로 접근한 시간