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 |