Ops/Linux

[Linux] 특정 일자가 지난 파일 / 폴더 삭제하기

장그래 2022. 8. 17. 00:10
반응형

개요

일정 주기로 로그 파일이나 특정 폴더를 삭제하고 싶으면 아래 명령어를 적용하면 된다.


파일 

find <찾을 경로> -mtime <특정 일자> -exec rm -rf {} \;

폴더

-type d 옵션을 추가하면 된다.

find <찾을 경로> -mtime <특정 일자> -type d -exec rm -rf {} \;

 

예시

파일
30일이 경과한 로그 파일 삭제

#!/bin/bash
find /home/*.log -mtime +30 -exec rm -rf {} \; # 30일 경과
find /home/*.log -mtime +20 -exec rm -rf {} \; # 20일 경과

폴더
30일이 경과한 폴더 삭제

#!/bin/bash
find /var/lib/jenkins/jobs/*/builds/{*,.[!.]*} -type d -mtime +30 -exec rm -rf {} \;

탐색 대상이 너무 많아 오류(Argument list too long)가 발생한다면 아래 스크립트를 적용하면 된다.

#!/bin/bash
find /var/libs/jenkins/jobs/*/builds/. -maxdepth 2 -mtime +30 -type d  -exec rm -rf {} \;

 

반응형