find / -name *.conf : 모든 폴더(/)에서 확장자가 conf인 모든파일(*.conf)을 찾는다.
find / -size +500k : 모든 폴더(/) 에서 파일의 크기가 500kb(500k) 이상(+)인 파일을 찾는다.
find --help : find 의 옵션들을 보여준다.
find 의 옵션이 상당히 많다.
위 정보는 가장 많이 사용하는 옵션일 것 같아서 나열하였다.
아래 사이트에 보다 상세한 정보가 나와 있다
출처 : http://cafe.naver.com/linuxjjangclub/4014, 네이버 카페 Login
FIND 명령어 살펴보기 - 백창현 | | | 과제방 |
2011.02.14 05:21 |
Find 명령어
생각보다 옵션들이 다양하며 .. 다른 명령어들과 합치면.. 끝이 없을듯 하네요.
우선적으로 ' 옵션 ' 에 대해서 알아보겠습니다.
옵션에 대한 설명
공통 m -> 수정 a -> 읽기 , 엑세스 c -> 상태가 변경 (소유자,권한등이)
-n 은 n이하를 반환 +n 은 n이상을 반환 n은 정확히 n에 해당되는 값을 반환
위의 그림 보시면 + 와 - 기호의 차이를 보기 편하게 되어있네요
====================================================================================================
-mmin -n n분 내에 수정된 / 최근 n분 동안 수정된
-amin +n n분 이전에 읽거나 엑세스한
-cmin n n분 에 상태가 변경된
-mtime -n n일 내에 수정된 / 최근 n시간 동안 수정된
-atime +n n일 이전에 읽거나 엑세스한
-ctime n 정확히 n일 이전에 에 상태가 변경된
-daystart 옵션을 사용하면 오늘을 시작으로 24시간 주기가 시작
-newer file file 보다 최근에 내용이 수정된 파일
-anewer file file 보다 최근에 읽기가 수행된 파일
-cnewer file file 보다 최근에 상태가 변경된 파일
-name ? ?에 일치하는 파일 찾기, 와일드카드 문자 사용가능
-iname ? ?의 대소문자 구문없는 파일 찾기
-perm [+-] mode 퍼미션(number & singal) 에 해당되는 파일찾기
-type [bcdpfls] b(블럭파일) , c(특정 문자) , d(디렉토리), p(파이프) ,
f(정규표현 일반파일), l(링크) , s(소켓) 유형의 파일찾기
-size N[bckw] 파일크기가 N 값인 파일찾기 b(블럭) c(바이트) k(키로바이트) w(2바이트단어)
-user NAME,UID 사용자로된 파일찾기
-group NAME,IDE 그룹으로된 파일찾기
-inum N inode N을 갖는 파일
-empty 파일이 비어있고, (= -size 0 ) , 정규식 파일이거나 디렉토리
-path ? path가 ?과 일치하는 path(경로)에 대해서 검색
-prune 이 옵션을 path 뒤에 붙여줄경우에는 find 명령어가 지정해둔 path로 이동믓 못하게함
지정된 path 를 제외한 디렉토리 라고? 해야될듯
-regex 파일이름 파일이름에 일치하는 정규식에 대해서 검색
-nouser , -nogroup user나 group에 이름이 없는 파일 검색
-follow 심볼릭 링크된 디렉토리도 검색을 할 경우에 사용한다.
-mount
현재의 파일 시스템과 동일한 타입의 파일 시스템에서만 검색을 할 경우에 사용한다.
test에는 다음과 같은 방법들이 있으며, test에 사용하는 인수에는 보다 큰 수를 의미하는 `'나, 보다 작은 수를 의미하는 `'를
함께 사용할 수 있다. 인수에 아무 연산자가 없을 경우에는 정확히 그 인수 값을 의미한다
-delete 찾은 파일을 삭제
-exec 커맨드 커맨드를 실행
-ok 커맨드 커맨드를 사용자에게 확인요청
-depth 깊이의 개념으로 find / 라고 입력히면 루트부터가 아니라 최하의 디렉토리 부터 제일 먼~
-maxdepth 보통 제일 많이 쓰는데 디렉토리 트리에서 상위 3개 수준까지
-mindepth 디렉토리 트리에서 최소 3개 수준까지 디렉토리 검색
-link ? 특정 개수의 링크를 가진 파일을 찾음
-fprint file 찾은 파일들을 `file'로 출력한다. `file'이 존재 하지 않을 경우에는 새로 생성되고,
존재할 경우에는 기존의 파일은 없어진다. (GNU find 버전
====================================================================================================
이 외에도 더 있지만 오늘은 여기까지만 보도록 하겠다 ㅡㅡ; 힘드네.
find 명령어 예제
find . \( -atime +30 -a -time -40 w) -ls
현재 디렉토리 아래에서 엑세스한 시간이 30일 이상, 40일 이하인 파일들을 찾음
find / -cmin -5 -a -type f -ls | more
최근 5분 동안 상태변경된 파일 찾기
find / ( -nouser -o -nogroup ) -print | more
사용자 이름과 그룹이름이 없는 파일 찾기
find / -type f -empty > aaa
빈파일 을 찾아 aaa에 저장
find . -type f -perm 777 -exec ls -l {} \;
퍼미션 777 사용권한이 모두 열려있는 파일을 찾아 리스트
find / \( -perm -2000 -o -perm -4000 \) -ls
SGID or SUID 권한이 설정되어 있는 파일 찾아 리스트~
find / -maxdepth 3 -name "*z"
*z 파일을 상위 3개 수준으로 검색
find / -iname "*.bak" -exec rm -rf {} \;
대소문자 구분없이 *.bak 파일을 찾아서 물어보지 않고 삭제한다
find . -newer backup.tar.gz
backup.tar.gz 파일 이후로 수정된 파일 찾기
find / -size +500k -exec rm -f {} \;
파일 크기가 500kb 이상인 파일을 찾고 삭제
find / -type l -ls
링크파일 찾기
find . -exec chmod 777 {} \;
현재 디렉토리 이하 서브디렉토리를 포함한 모든 파일들에게 퍼미션 777로 변경
find . -user test1 -exec chown -R test2 {} \;
현재 디렉토리로 부터 test1 소유로된 파일들을 모두 test2 사용자 권한으로 변경
find / -name '[a,b][c,d]* -print
첫번째 글짜기a 또는 b 두번쨰가 c또는d로 시작하는 모든 파일 찾기
find . -name "d.txt" -exec perl -pi -e 's/good/hello/g' {} \;
d.txt파일을 찾아 내용중 good 을 hello로 치환
find . "*.gz" -exec tar zxvf {} \;
현재디렉토리내의 *.gz(gzip가정하에)로 된 파일을 전부 tar명령어를 이용해 압축을 푼다.
find . -iname "test" -uid 504 -print
현재 디렉토리내의 사용자아이디가 504로 되어있는 대소문자 구분없이 test파일을 출력
find . -maxdepth 1 -name "s*" -type d -exec cp good.txt. {} \;
현재 디렉토리에서 S로 시작하는 디렉토리면 찾아서 찾은 디렉토리내에 good.txt를 넣는다
find / -name "* *" -print
파일에 공백이 들어있는 파일 찾기
find . -group linux -print
사용자 그룹이 linux인 파일을 찾아준다.
find / -perm +2 ! -type l -print -exec chmod o-w {}
일반 사용자가 쓰기 권한을 갖도록 설정되어 있는 파일을 찾아서 실행 권한을 없애는 경우 (단, 링크 파일은 제외함)
find ./ -type f -name *.cgi -exec grep "찾을문자열" {} \; -print
해당 문자열이 포함된 파일을 검색하여 출력
find -name "*" -print -exec mv {} {}.txt \;
모든 파일에 txt 확장자를 붙이고자 할 때
find / -type f -size 10480 -mtime 30 -ls
파일 크기가10M 이상이며 한달 이상동안 수정되지 않은 파일을 찾는다.
find ./ \( -user test1 -o -group test1 \)
OR 논리연산으로 소유자나 그룹이 test1 인경우
find ./ \( ! -user test -o ! -group test \)
NOT 논리연산으로 소유자나 그룹이 test 이 아닌 경우
find . -type f -name .* -newer .bashrc -print
.bashrc를 수정한 이후 에 수정된 .으로 시작하는 파일을 찾을때
find /home/ -maxdepth 2 -name .bash_history -exec grep -H .conf {}; | less
사용자 계정에서 환경설정 파일 검색했나 확인
끝이 없습니다~ 수고하셔요 =ㅂ=
'reference..' 카테고리의 다른 글
오라클 expdp / impdp (0) | 2012.05.24 |
---|---|
참고자료..[이글에 쭈욱 이어쓰리라~~, since 2011.11.29] (0) | 2012.05.24 |
Exchange 2007 설정 관련 정보 (0) | 2012.05.02 |
sendmail 관련 확인 사항. (0) | 2012.04.25 |
사이트 관리 참고 자료들... (0) | 2012.03.30 |