지난달 1일 이전 파일 삭제 방법

지난달 1일 이전 파일 삭제 방법

매달 1일에 실행되는 스크립트가 있습니다. 이 스크립트에서는 지난달 1일 이전에 수정된 모든 파일을 삭제하고 싶습니다. 예를 들어. 이 스크립트는 3월 1일에 실행됩니다. 2월 1일 이전에 생성된 파일을 모두 삭제하고 싶습니다. 가능합니까?

답변1

쉘 스크립트를 사용하십시오:

#!/bin/sh

dir_to_check='/root/temp/somedir'

last_month=$(date -d "-1 month -$(($(date +%d)-1)) days" +%Y-%m-%d)

find "$dir_to_check" ! -newermt "$last_month" -type f -exec rm {} \;

dir_to_check='/root/temp/somedir'파일을 검색할 디렉터리(삭제를 시도하지 않았으면 좋겠습니다.)모두지난 달 이전에 생성된 컴퓨터의 파일).

last_month=$(date -d "-1 month -$(($(date +%d)-1)) days" +%Y-%m-%d)- 변수를 전월 1일로 설정합니다.

find "$dir_to_check" ! -newermt "$last_month" -type f -exec rm {} \;- 수정된 날짜가 전월 1일 이전인 모든 파일을 검색하여 삭제합니다.

답변2

생성 시간으로 파일을 찾는 것이 가장 쉬운 것은 아니지만, 마지막으로 수정되었거나 마지막으로 액세스된 파일이 귀하에게도 도움이 될 수 있습니까?

가장 간단하지만 정확도가 떨어지는 방법은 검색을 실행하여 수정된 지 31일 이상 된 모든 파일을 선택하는 것입니다. 그런 다음 find로 생성된 파일 목록을 처리하거나 find 명령에서 삭제를 수행할 수 있습니다.

  • 마지막으로 변경된 지 31일이 지난 파일을 찾으세요.find <dir> -type f -mtime +31
  • 마지막으로 변경된 지 31일 이상 지난 파일을 찾아서 삭제하세요.find <dir> -type f -mtime +31 -exec rm {} \;

액세스 시간을 확인하려면 -mtime로 바꾸면 됩니다 -atime.

-newerBt <creation_date>X일 전에 생성된 파일을 찾으려면 (버전 4.3.3 이상) 을 사용할 수 있습니다 . 액세스, 수정 또는 변경 기준을 사용하도록 형식을 조정할 수 있습니다.

  • 2018년 1월 1일 이전에 생성된 파일 찾기:find <dir> -type f -newerBt 2018-01-01

관련 정보