IT/Tips

find 팁

싸후이 2010. 6. 7. 15:48
find에다가 -exec 옵션을 붙이면 무엇이든 할 수 있습니다.

확장자 일괄변경
find . -name *.php -exec rename .sas .mtml {} \;

파일내용 찾기
find . -type f -print | xargs egrep -i "expression"

파일내용 바꾸기
find . -name *.* -exec perl -p -i -e 's/old/new/g' {} \;

일괄삭제
find . -name *.bak -exec rm -rf {} \;  

find ./ -print | xargs grep asdf $1 

asdf 라는 문자가 들어간 파일 찾아서 뿌려주기

# find . -exec grep -l "문자열" {} \; -exec mv {} ./temp_dir \; 

 어떤 문자가 들어간 파일을 찾아서 특정 디렉토리에 이동시키기 
아쉬운데로 쓸만함.

문자열찾기 방법 1 - 영어만 주로 가능 
# grep -rw "찾는문자열" ./ 

문자열찾기 방법 2 - 대/소문자 구분 안하고 검색 
# grep -i -l "찾는문자열" * -r 2> /dev/null 

문자열찾기 방법 3 - 한글, 영어 모두 가능 
# find . -exec grep -l "찾는문자열" {} \; 2>/dev/null 

문자열찾기 방법 4 - 한글,영어, 대소문자 안가리고 검색 
# find . -exec grep -i -l "찾을문자열" {} \; 2>/dev/null 

문자열찾은 후 치환 
# find . -exec perl -pi -e 's/찾을문자열/바꿀문자열/g' {} \; 2>/dev/null 

파일명 찾기 
# find / -name 파일명 -type f 

파일명 찾기(대소문자 구별없음) 
# find / -iname 파일명 -type f 

디렉토리 찾기 
# find / -name 파일명 -type d 

디렉토리 찾기(대소문자 구별없음) 
# find / -iname 파일명 -type d 

특정 사용자 소유의 모든 파일을 찾을때는? 
# find / -user "사용자 ID" -print 

두세가지 문자열을 동시에 찾아야 할때는 egrep을 쓰면 아주 편합니다. 
예를 들어 
만약 그냥 grep으로 문자열1,2 를 찾으려면 
ps -ef | grep 문자열1; ps -ef | grep 문자열2 
와 같이 해야하는것을 egrep를 이용하면 

ps -ef | grep '문자열1|문자열2' 
와 같이 간단해집니다. 

# egrep '(pattern1|pattern2|pattern3)' file.txt

"파일명 찾기" 


find . -name "찾는파일명" -print 

  

. : 찾는 위치 

(현재위치에서 하부 디렉토리에서 찾을 경우 . 사용) 

( root에서 찾으려면 /를 입력함.) 

(절대 경로 예: /home/vanran 하부 폴더에서 찾으려면 find /home/vanran -name "찾는파일명" -print ) 




"find 와 grep 으로 특정 문자열을 찾는 방법" 

현재 디렉토리에서 하위 디렉토리를 포함하여 검색어를 검색할때 
find . -type f -print | xargs grep "string" 

현재 디렉토리 위치에서 하위 디렉토리를 포함하여 string 이란 문자열을 포함한 파일 검색 
find . -type f | xargs grep "string" 

find . | xargs grep "string"

'IT > Tips' 카테고리의 다른 글

linux 패키지 설명  (0) 2010.06.10
ubuntu setting  (0) 2010.06.07
Linux Bonding 구성  (0) 2010.03.19
ubuntu 9.10 설정  (0) 2010.01.27
자료형 최소값,최대값  (0) 2009.12.02