[리눅스] FIND 활용하기
- 카테고리 없음
- 2021. 4. 14.
FIND
리눅스의 기능 중, 없어서는 안 되는 기는 중 하나이다.
촘촘하게 쌓여있는 디렉토리 사이로 원하는 파일이 어디에 있는지 찾기 위해 필요한 명령어이다.
find 사용 방법
find [경로] [옵션] [조건]
find는 이렇게 알고 있으면 된다.
이제 이것을 해석을 하기 시작한다면 이런 식이다.
각 부분은 서로 조건이 충족된다면 생략할 수 있으며, 옵션은 중복해서 사용이 가능하다.
find의 간단한 사용 에시
find ./ -name 'abc'
현재 경로의 이름이 'abc'인 것을 find 해주세요. 뜻이 된다.
이제 어떻게 조합하느냐에 따라 find의 기능이 달라진다.
옵션의 종류
option | 설명 |
-name | 지정된 문자열 패턴에 해당하는 파일 검색 |
-empty | 빈 디렉토리 또는 크기가 0인 파일 검색 |
-delete | 검색된 파일 또는 디렉토리 삭제 |
-exec | 검색된 파일에 대해 지정된 명령 실행 |
검색 결과를 출력. 검색 항목은 newline으로 구분 | |
-print0 | 검색 결과를 출력. 검색 항목은 null로 구분 |
-size | 파일 크기를 사용하여 파일 검색 |
-type | 지정된 파일 타입에 해당하는 파일 검색 |
-mindepth | 검색을 시작할 하위 디렉토리 최소 깊이 지정 |
-maxdepth | 검색할 하위 디렉토리의 최대 깊이 지정. |
-atime | 파일 접근(access) 시각을 기준으로 파일 검색 |
-ctime | 파일 내용 및 속성 변경(change) 시각을 기준으로 파일 검색 |
-mtime | 파일의 데이터 수정(modify) 시각을 기준으로 일 단위로 파일 검색 |
name
이름으로 검색한다.
find ./ -name '*.log'
현재 경로에서 .log를 가진 것을 모두 검색하는 명령어이다.
empty
비어있는 파일이나 디렉터리를 찾는다
find ./ -empty
현재 경로에서 빈 파일, 디렉토리를 찾는다.
Delete
find ./ -delete
현재 경로에서 검색된 모든 내용 삭제한다.
Exec
find ./ -exec [명령어]
현재 경로에서 검색된 내용에 대해 명령어 실행한다.
find ./ -print
현재 경로에서 검색 값을 출력합니다. 기본 default 성질을 갖고 있다.
find ./ -print0
print0으로 사용할 경우, 검색된 결과들이 개행되지 않고 그대로 출력된다.
Size
find ./ -size [크기]
현재 경로에서 1000k 이상의 용량을 가진 파일들을 검색한다.
이상은 +, 이하는 -로 검색하면 된다.
Type
find ./ -type [옵션]
type를 사용할 경우, 디렉터리 파일을 구분할 수 있게 도와준다.
-type f : 파일을 검색한다.
-type d : 디렉터리를 검색한다.
mtime
find ./ -mtime -1
마지막 수정한 날 기준으로 현재시간에서 -1일에 해당되는 것을 검색한다.
마지막 이야기
find에 대해 간략하게 알아보았다. 이처럼 find의 옵션에 따라 설정하는 방법도 다르고, 응용하는 방법 또한 다르게 할 수 있다.
find를 통해 검색된 결과 권한 변경하기
find / -type f -perm -2 -exec chmod 755 {} \;
띄어쓰기를 신경 써주길 바란다.
/ 최상위 디렉터리인 root 기준으로 파일을 찾고, 일반계정 권한 중 쓰기가 있는 파일을 검색한다.
검색된 결과는 exec 옵션을 통해 chmod 권한으로 변경한다.
root를 제외한 나머지 계정은 쓰기 [변경]을 할 수가 없게 된다.
모두 파이팅입니다.