본문 바로가기
Linux 2급

리눅스 find 명령어 atime,ctime,mtime 차이점

by 방뭉밍봉 2023. 11. 2.

find

#>find [path] [option] [option]

-print ( default ) : 표준 출력으로 검색된 파일명을 출력한다.

-type [type]

d 디렉터리 파일

f 일반 파일

b,c 장치 파일

l 소프트 링크 파일

-exec [command] \; : 찾은 각 파일에 대해 지정된 명령을 실행한다.

-delete

-name [name] : 지정된 이름의 파일을 찾는다

-size [num] : 지정된 크기의 파일을 찾는다

+[num]

-[num]

-user [user_name] : user 소유의 파일을 찾는다

-group [group_name] : group 소유의 파일을 찾는다

-nouser 소유자 X

-nogroup 소유그룹 X

-perm [perm] : 해당 권한에 파일을 찾는다 ex) 755,750,500

----------------------------------------------------------------------------------------------------

-atime [num(일)] Access Time : 파일을 오픈하면 atime이 갱신된다. grep , sort, cat 등등 명령을 주거나 open() 함수로 열었을때

-mtime [num(일)] Modify Time : 파일의 수정시간이다. 이는 속성이 아닌 파일의 내용이 바뀌었을때 이 값이 바뀐다. 주의할 것은 파일 내용이 바뀌면 파일의 크기가 달라진다. 이때 파일의 크기가 속성이므로 ctime도 갱신된다. 만약 파일 내용을 수정했는데 파일 크기가 바뀌지 않았을수 있다. 이때는 ctime이 바뀌지 않을까? 파일이 수정되면 mtime 이 바뀐다. mtime 은 파일의 속성이다. 때문에 ctime이 바뀐다.

-ctime [num(일)] Change Time : 파일이나 inode 값이 바뀐 시점이다. 다시말해 속성값이 바뀐시점이다. 퍼미션이나 소유주, 파일크기 등 파일 속성값이 변경되었을 때 ctime 은 갱신된다.

+[num(일)]

-[num(일)]

설명 및 예제

find는 주어진 조건에 따라 디렉터리를 검색해서 원하는 파일을 찾는 명령어이다. 실제로 find는 단순한 파일 검색 기능보다 다양하고 강력한 기능을 사용자에게 제공한다. 이때 지정한 조건식에 일치하는 파일을 -exec 명령어 형식으로 실행한다.

먼저 파일 이름을 검색하는 find 사용법을 알아보고 명령행을 이용한 find 사용법을 알아보자. find는 먼저 검색할 경로를 정의하고 추가적으로 옵션과 검색 키워드를 사용한다. root 디렉터리에서 word.awk를 검색해 보자. 이름을 기준으로 검색할 경우 -name 옵션을 사용해야 한다.

 

find 명령어로 찾은 결과값을 또 다른 명령어를 사용하여 처리할 수 있다. exec “command \;”는 find가 찾아낸 각각의 파일에 대해 해당 명령을 실행한다. 명령은 “\;”로 끝나야 한다.

현재 디렉터리에 있는 모든 파일명 나열하기.

현재 디렉터리에 있는 디렉터리 나열하기.

현재 디렉터리에서 파일 이름에 공백 문자가 들어간 모든 파일을 삭제하기.

현재 디렉터리 파일 중 파일명에 비정상적인 글자를 포함한 파일 지우기.

TIP
+ { ;“ \ = ? ~ ( ) <> & * | $ 등의 특수기호를 포함한 파일을 삭제한다. 이 과정에서 2>/dev/null는 표준에러를 /dev/null 디바이스로 출력하여 화면에 보이지 않게 한다.

검색된 파일시스템 모두 복사하기.

지난 24시간 동안 변경된 디렉터리 목록을 changelist 파일로 만들기.

시스템에서 최근 5분간 변경된 모든 파일을 목록으로 만들기.

rm 명령으로 지워지지 않는 파일을 find 명령으로 inode를 지정하여 삭제하기.