컴퓨터활용/유닉스

find 명령어 옵션

멜번초이 2008. 5. 12. 14:56
반응형

* / 는 최상위 디렉터리를 뜻함. 만약 찾고자 하는 디렉터리가 있다면 그걸로 대체

- 파일 이름에 foobar 가 들어간 파일 찾기
   find / -name "foobar" -print

- 특정 사용자(foobar) 소유의 파일을 찾기
   find / -user foobar -print | more

- 최근 하루동안에 변경된 파일을 찾기
   find / -ctime -1 -a -type f | xargs ls -l | more

- 오래된 파일(30일 이상 수정되지 않은 파일) 찾기
   find / -mtime +30 -print | more

- 최근 30일안에 접근하지 않은 파일과 디렉터리를 별도의 파일로 만들기
   find / ! ( -atime -30 -a ( -type d -o -type f ) ) | xargs ls -l > not_access.txt

- 하위 디렉터리로 내려가지 않고 현재 디렉터리에서만 검색하기
   find . -prune ...

- 퍼미션이 777 인 파일 찾기
   find / -perm 777 -print | xargs ls -l | more

- others 에게 쓰기(write) 권한이 있는 파일을 찾기
   find / -perm -2 -print | xargs ls -l | more

- others 에게 쓰기(write) 권한이 있는 파일을 찾아 쓰기 권한을 없애기
   find / -perm -2 -print | xargs chmod o-w
      또는
   find / -perm -2 -exec chmod o-w {} ; -print | xargs ls -l | more

- 사용자이름과 그룹이름이 없는 파일 찾기
   find / ( -nouser -o -nogroup ) -print | more

- 빈 파일(크기가 0 인 파일) 찾기
   find / -empty -print | more
      또는
   find / -size 0 -print | more

- 파일 크기가 100M 이상인 파일을 찾기
   find / -size +102400k -print | xargs ls -hl

- 디렉터리만 찾기?
   find . -type d ...

- root 권한으로 실행되는 파일 찾기
   find / ( -user root -a -perm +4000 ) -print | xargs ls -l | more

- 다른 파일시스템은 검색하지 않기
   find / -xdev ...

- 파일 이름에 공백이 들어간 파일 찾기
   find / -name "* *" -print

- 숨겨진(hidden) 파일을 찾기
   find / -name ".*" -print | more

- *.bak 파일을 찾아 지우기
   find / -name "*.bak" -exec rm -rf {} ;

- *.bak 파일을 찾아 특정 디렉터리로 옮기기
   mv `find . -name "*.bak"` /home/bak/

- 여러개의 파일에서 특정 문자열을 바꾸기
   find / -name "*.txt" -exec perl -pi -e 's/찾을문자열/바꿀문자열/g' {} ;

- 특정 디렉토리 하위의 모든 파일을 뒤져서 특정 문자열이 들어 있는 파일 찾기 
   find . | xargs grep csh   :  .은 현재디렉토리 이므로 현재 디렉토리 하위의 모든 파일에서 csh글자를 grep
   find /user/  | xargs grep csh 로 하면 당연  /user/ 아래의 모든 파일이 대상이 되겠져. 

출처 : http://tong.nate.com/redyoon/42478432

## -mtime / -atime / -ctime 의 차이
-mtime : 위에서 mtime의 m은 modify라고 언급했었는데 mtime은 수정한 날짜이다.
-atime : access의 a를 따서 접근한 날짜
-ctime : create라고 생각했는데... 권한을 변경한 날짜로 change를 의미한다고 한다.  

## 검색 기간의 부호가 의미

-10 : 오늘부터 10일 전의 (수정/접근/권한변경) 된 대상을 검색
10 : 정확히 10일 전에 (수정/접근/권한변경) 된 대상을 검색
+10 : 10일 또는 10일 이전에 (수정/접근/권한변경) 된 대상을 검색 

반응형

'컴퓨터활용 > 유닉스' 카테고리의 다른 글

gcc 이야기  (0) 2008.05.19
truss를 이용한 input/output 내역 모니터링  (0) 2008.05.13
쉘에서 문자열 조작하기  (0) 2008.02.28
VI 에디터 120% 사용하기  (0) 2007.12.18
awk를 이용한 substr  (0) 2007.03.11