[리눅스] FIND 활용하기

    FIND


     

    리눅스의 기능 중, 없어서는 안 되는 기는 중 하나이다.

    촘촘하게 쌓여있는 디렉토리 사이로 원하는 파일이 어디에 있는지 찾기 위해 필요한 명령어이다.

     

     

    find 사용 방법

    find [경로] [옵션] [조건]

    find는 이렇게 알고 있으면 된다.

    이제 이것을 해석을 하기 시작한다면 이런 식이다.

     

    각 부분은 서로 조건이 충족된다면 생략할 수 있으며, 옵션은 중복해서 사용이 가능하다.

     

     

    find의 간단한 사용 에시

    find ./ -name 'abc'

    현재 경로의 이름이 'abc'인 것을 find 해주세요. 뜻이 된다.

     

    이제 어떻게 조합하느냐에 따라 find의 기능이 달라진다.

     

     

     

    옵션의 종류

    option 설명
    -name 지정된 문자열 패턴에 해당하는 파일 검색
    -empty 빈 디렉토리 또는 크기가 0인 파일 검색
    -delete 검색된 파일 또는 디렉토리 삭제
    -exec 검색된 파일에 대해 지정된 명령 실행
    -print 검색 결과를 출력. 검색 항목은 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 [명령어]

    현재 경로에서 검색된 내용에 대해 명령어 실행한다.

     

     

    Print

    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를 제외한 나머지 계정은 쓰기 [변경]을 할 수가 없게 된다.

     

     

     

    모두 파이팅입니다.

    반응형

    댓글

    Designed by JB FACTORY