2021. 2. 8. 12:31ㆍIT/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를 통한 여러가지 사용법들을 알아보았는데 이러한 방법들로
오래된 또는 새로운 파일들을 찾아 특정 액션을 취할 수 있어 많은 곳에서 사용되는 방법이다.
'IT > S . e . v . e . r . I . n . f . r . a' 카테고리의 다른 글
쉘 스크립트로 액세스로그에서 날짜별 액세스 수 추출하기 (0) | 2021.02.18 |
---|---|
if문에서 영문 숫자 구별하기 (0) | 2021.02.08 |
if문의 조건의 문자열 일부 매칭 (0) | 2021.02.08 |
쉘 스크립트에서 문자열이 매칭되었을 때 분기하기 (0) | 2020.06.05 |
Bash쉘에서 파일명 일괄 대소문자 변환 (0) | 2020.06.05 |
쉘 스크립트에서 실행결과가 변수에 저장되지 않는 경우 변수 저장 방법 (0) | 2020.06.05 |