컴퓨터공부/Linux & Unix

find 명령어

achivenKakao 2006. 6. 22. 23:53
linux 나 unix 를 사용하다보면 탐색기에 익숙한 사용자들은

파일을 control 하는것이 상당히 힘든을 느낀다.

그러나 find 명령어 하나로 모든 고민을 해결할수 있다.

이름이 *.txt 인 파일 출력
[smson@linux smson]$ find ~ -name "*.txt" -print
/home/smson/user2.txt
/home/smson/user3.txt
/home/smson/aa.txt

파일명이 *.bak 이면서 파일크기가 1k 이상인것.

+N 는 이상
-N 는 이하
N 는 정확한 값임

[smson@linux smson]$ find ~ -name "*.bak" -size +1k -print
/home/smson/ihchat/iHChatServer.java.bak
/home/smson/ihchat/iHChatHandler.java.bak
/home/smson/myjava/DatabaseTest.java.bak

는 *.bak 인 파일명을 삭제한다.

-exec는 실행의 의미이면 {} 는 find 로 검색된 파일명이다.

[smson@linux smson]$ find ~ -name "*.bak" -exec rm -rf {} \;
[smson@linux smson]$ find ~ -name "*.bak" -print

[smson@linux smson]$ find ~ -size +100k -exec ls -al {} \;
-rw------- 1 smson smson 1220643 Feb 1 20:56 /home/smson/dead.letter
-rw-rw-r-- 1 smson smson 325923 Aug 14 14:50 /home/smson/aa2.pl.c
-rwxrwxr-x 1 smson smson 526247 Aug 14 14:43 /home/smson/aa

파일내에 문자열검색

[lets114@LETS114 lets114]$ find ./ -name "*.php"  -exec grep "검색문자열" /dev/null {} \;


정리를 하면

-name 은 파일명
-size 는 파일크기
-time 는 파일의 시간과 연관된다.

검색 디렉토리는
/ 는 루트
~ 홈디렉토리
. 현재디렉토리