프로그래밍/Linux

Linux 날짜 기준으로 오래된 파일 삭제하기

Lou Park 2022. 7. 21. 22:45

find

# 수정된지 2일 지난 파일
find <디렉토리> -mtime +1

# 수정된지 2일 이내의 파일
find <디렉토리> -mtime -1 

# 수정된지 2일 지난 파일을 삭제
find <디렉토리> -mtime +1 -delete

# 수정된지 2일 지난 txt 파일을 삭제
find <디렉토리> -name '*.txt' -mtime +1 -delete

find 명령어를 이용하여 특정한 날짜 기준으로 파일을 삭제할 수 있다. 

아래는 find 명령어의 관련 옵션들이다.

옵션명 설명
mtime modification time, 수정시간 (내용)
ctime change time, 변경 시간 (속성/권한/크기 변화)
atime access time, 접근 시간 (open)
name 파일 이름
delete 삭제

 

crontab에 Task 등록하여 주기적으로 삭제하기

아래 내용의 shellscript를 작성하고, 이름을 delete_old_files.sh라고 저장했다고 하자.

#!bin/sh
find /tmp -mtime +6 -delete

crontab -e를하면 crontab의 작업을 수정할 수 있다.

crontab -e

아래와 같이 설정후 저장하면, 매일 0시 0분 등록한 작업을 실행한다. 잘 등록되었는지 확인하려면 crontab -l로 내용을 확인하면된다.

0 0 * * * sh /your/path/delete_old_files.sh