find 명령어 소개
find는 파일을 찾는 명령입니다.
형식
find [탐색경로][옵션][표현식][검색 후 작업]
- 탐색 경로
- 탐색 경로를 생략하면 현재 디렉토리부터 검색을 시작합니다.
- 읽기 권한이 없는 디렉토리는 건너뜁니다.
- sudo로 루트 권한을 얻으면 모든 디렉토리를 검색할 수 있습니다.
- 루트 디렉토리부터 시작해서 모든 파일을 검색하려면
/
를 명시합니다. - 탐색 경로에
.
를 입력하면 현재 디렉토리 및 하위 디렉토리를 검색합니다. ~사용자ID
: 해당 사용자ID 홈 디렉토리 이하를 검색합니다.
- 검색 옵션
옵션 | 검색 대상 |
---|---|
-perm | 파일 권한 |
-type | 파일 종류 |
-size | 파일 크기 |
-links | 링크 수 |
-user | 사용자 ID |
-atime | 특정 기간 동안 접근하지 않은 파일 |
-mtime | 특정 기간 동안 수정되지 않은 파일 |
- 검색 후 작업
-print
: 찾은 파일의 절대 경로명을 화면에 출력합니다.-exec cmd {};
: 찾은 파일들에 대해 cmd 명령을 실행합니다.
- 연산자
여러 조건을 동시에 사용하기 위해 연산자를 이용합니다.
- ( ) : 괄호( )안의 연산이 먼저 수행됨.
- ! expr : expr 이 거짓일때 참, 참일때 거짓이 됨.
- -not expr : 위의 ! expr 과 동일함 (POSIX 호환용)
- expr1 expr2 : AND 의 의미. expr1 이 거짓일 때에는 expr2 는 평가되지 않음
- expr1 -a expr2 : ‘expr1 expr2’ 와 같음
- expr1 -and expr2 : ‘expr1 expr2’ 와 같음 (POSIX 호환용)
- expr1 -o expr2 : OR 의 의미. expr1 이 참일 경우 expr2 는 평가되지 않음.
- expr1 -or expr2 : ‘expr1 -o expr2’ 와 같은 의미
출처 : WEBDIR
용례
루트 디렉토리부터 시작해서 파일 이름이 test인 파일을 검색합니다.
sudo find / -name test
-name
은 파일 이름으로 검색하는 옵션입니다.
find -name test
루트 디렉토리에서 시작해서 디렉토리 이름이 ex로 시작하는 모든 디렉토리 찾기
find / -name "ex*" -type d
abc라는 사용자 디렉토리 이하에 존재하는 모든 docx 파일을 검색하여 컨펌없이 삭제합니다.
find ~abc -name "*.docx" -exec rm -f {} \;