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 |