일정 시간 동안 액세스하지 않은 폴더의 모든 파일을 어떻게 삭제합니까?


14

일주일 이상 액세스하지 않은 폴더의 모든 파일을 삭제하는 야간 크론 작업을 실행하고 싶습니다. bash에서 이것을 수행하는 가장 효율적인 방법은 무엇입니까?


2
find한 번에 따라 필터링 할 수 있습니다. 시간의 "정확도"는 noatime최소한 구성에 따라 다릅니다 (참조 ).

답변:


20

당신은 find도구를 원한다 .

find folder -depth -type f -atime +7 -delete

(이됩니다 삭제 된 모든 파일 ( 정규 사람 , 지정된 폴더에, 아니 파이프, 특수 장치, 디렉토리, 심볼릭 링크) 및 모든 서브 디렉토리 (재귀 적으로) 마지막 경우 액세스 시간 입니다 이상 일 전).


6
-type f전체 디렉토리가 아닌 파일 만 삭제하도록 추가 할 수 있습니다 .
Shadur

3

tmpwatch크론 작업에 넣을 수있는 것을 확인하고 싶을 수도 있습니다. 로 롤백 할 필요가 없습니다 find. RHEL에서는 tmpwatchRPM에 있습니다.


이것은 확실히 더 우아한 솔루션이지만, 나는 이식성을 선호합니다 find.
bloudermilk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.