728x90

find
개요
특정 파일의 위치를 검색

Options
-name : 이름
-user : 소유자
-perm : 퍼미션
-szie : 크기
-mtime : 수정시간(modified)
-type : 파일타입

type 옵션 아규먼트
b : 블록특수파일
c : 문자특수파일
d : 디렉토리
f : 일반파일
l : 심볼릭링크
p : 파이프파일
s : 소켓
ex)  파일타입이 일반파일인  파일을 찾아라

$ find . -type f


size 옵션 아큐먼트
b : 블록단위
c : byte
k : kbyte
w : 2byte word
ex) 일반파일의 크기가 256byte인 파일을 찾아라

$ find . -type f -size 256c


일반파일의 크기가 256byte보다 이상 파일을 찾아라

$ find . -type f -size +256c


일반파일의 크기가 256byte보다 이하 파일을 찾아라

$ find . -type f -size -256c


Action
-exec : 외부명령 실행
-prune : 해당 결과 디렉토리는 검색 제외

ex)find [찾을 대상] [-option] [값] ([-Action] [명령])
※( )는 생략가능
./foo/bar 디렉토리는 제외하고, *.txt 파일을 찾아라

$ find . !\(-path './foo/bar' -prune\) -name "*.txt"

※AIX의 경우

$ find . ! -path ./foo/bar -name "*.txt"



./foo/bar와 ./dd/abc 디렉토리는 제외하고, *.txt 파일을 찾아라

$ find . !\(\(-path './foo/bar' -o -path './dd/abc'\) -prune\) -name "*.txt"


현재위치에서 하위의 모든 디렉토리 권한을 775로

$ find ./ -type d -exec chmod 775 {} \;


현재위치에서 하위의 모든 파일 권한을 644로

$ find ./ -type f -exec chmod 644 {} \;


모든 ".txt"파일에서 파일내용을 동시에 치환할때

$ find . -tpye f -name \*.txt -exec perl -pi -e 's/소스/타겟/g' {} \;


모든 ".txt"파일에서 파일명을 동시에 치환할때

$ find . -type f -name \*.txt |while read filename;do mv -f $filename `echo $filename | sed 's/소스/타겟/'`;done


A 파일을 B디렉토리로 무브

$ find . -name A파일명 -print | xargs -i mv {} B디렉토리명



728x90

'IT > OS (Unix Linux Windows)' 카테고리의 다른 글

[명령어]ln  (0) 2018.10.30
[명령어]split  (0) 2018.10.30
[명령어]touch  (0) 2018.10.30
[명령어]파일시스템 관련 df / du  (0) 2018.10.30
[명령어]압축관련 tar / gzip  (0) 2018.10.30

+ Recent posts