find 명령의 mtime 옵션 정리

2021. 2. 8. 12:31IT/S . e . v . e . r . I . n . f . r . a

이번에는 find의 시간 지정 옵션에 대해 알아봅시다.

우선 시간 지정 관련 옵션 목록을 보도록 합니다..

옵션

옵션 요약
-mmin 파일의 데이터가 마지막으로 수정 된 시간 (분 지정)
-mtime 파일의 데이터가 마지막으로 수정 된 날짜와 시간 (일 지정)
-amin 파일의 데이터에 마지막으로 액세스 한 날짜와 시간 (분 지정)
-atime 파일의 데이터에 마지막으로 액세스 한 날짜와 시간 (일 지정)
-cmin 파일 데이터 및 상태가 마지막으로 수정 된 시간 (분 지정)
-ctime 파일 데이터 및 상태가 마지막으로 수정 된 날짜와 시간 (일 지정)

 

 

현재 3 일전까지 (현재 시간 ~ 72 시간 전)

# find [path] -mtime -3

 

3 일전 (72 시간 ~ 96 시간 전)

# find ./ -mtime 3

 

과거로부터 3 일전까지 (72 시간 전 ~ 과거)

# find ./ -mtime +1

 

※ (2 + 1) 일전부터

 

daystart 옵션 지정하기

 

daystart 옵션을 지정하면 하루의 기준을 0시로 설정합니다.

1일 단위로 범위 지정 하려는 경우에 이 옵션을 사용하면 됩니다.

 

예를 들어, 현재 12 월 24 일 03시 00분을 기준으로 봅시다.

 

현재 3 일전까지 (12 월 24 일 24시 00 분 ~ 72 시간 전)

# find ./ -daystart -mtime -3

 

3 일 전 (12 월 21 일 24시 00 분 ~ 24 시간 전)

# find ./ -daystart -mtime 3

 

과거로부터 3 일전까지 (12 월 21 일 24시 00 분 ~ 과거)

# find ./ -daystart -mtime +1

※ (2 + 1) 일전부터

 

소수점 아래로 지정도 가능합니다.

12 시간 전까지 (현재 시간 ~ 12 시간 전)

# find ./ -mtime -0.5

 

여기서 더 응용을 해서 위에 방법들로 찾아낸 압축파일에 대한 삭제 액션까지 추가해보자

# find ./ -type f -mtime +1 -name '*.tar.gz' | sort | xargs rm -f

 

추가로 오늘 생성된 파일을 검색해서 tar로 압축하는 스크립트인데 여기서는 앞에 예제와는 다르게

파이프를 사용하지 않고 명령을 실행 하는 방법을 사용하였다.

상황에 맞게 두가지 방법을 적절히 사용하도록 하자.

# find ./ -type f -mtime 0 -exec tar zcvfP testbackup.tar.gz {} \;

# find ./ -type f -mtime 0 -exec tar zcvfP testbackup.tar.gz {} \;

 

find를 통한 여러가지 사용법들을 알아보았는데 이러한 방법들로

오래된 또는 새로운 파일들을 찾아 특정 액션을 취할 수 있어 많은 곳에서 사용되는 방법이다.