본문 바로가기

컴퓨터/IT

find 와 grep으로 특정사이즈 이상되는 리스트 뽑기

find /usr/ -size +10000k -exec ls -alh {} \;

예시를 이용하여 find 명령어를 적어봤습니다.

grep명령은 제가 잘 사용을 안해서...ㅡ,.ㅡ

 

파일명이 *.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 는 파일의 시간과 연관된다.

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

출처 : 지식인