답변:
작성 시간은 특수 도구가있는 특정 파일 시스템에서만 사용할 수 있기 때문에 3 일 이상 전에 수정 시간이 소요된다는 점에 유의하십시오.
find /a/b/c/1 /a/b/c/2 -type f -mtime +3 #-delete
를 제거 #
전과 -delete
확실이 제거 할 파일을 찾는 것을 일단.
이 크론에 의해 실행되도록하려면, 나는 아마 실행 스크립트를 (A 오두막을 추가 - 생성 할 #!bin/sh
파일의 상단 라인과와 실행하기 chmod a+x
), 다음 적절한에 넣어 cron
같은 디렉토리 /etc/cron.daily
나 /etc/cron.weekly
. 물론 더 구체적인 일정이 필요하지 않으며 이러한 디렉토리가 배포판에 존재해야합니다.
아래에서 언급했듯이에 대한 -delete
옵션 find
은 이식성이 떨어집니다 . POSIX 호환 방식은 다음과 같습니다.
find /a/b/c/1 /a/b/c/2 -type f -mtime +3 #-exec rm {} +
#
올바른 파일이 있다고 확신 하면를 다시 제거 하십시오.
Stéphane Chazelas의 인용문은 다음과 같습니다.
참고
-exec rm {} +
경쟁 조건 취약점이 있습니다-delete
(가능한 경우)을 가지고하지 않습니다. 따라서 다른 사람이 쓸 수있는 디렉토리에서는 사용하지 마십시오. 일부 발견은 또한-execdir
이러한 취약점을 완화시키는 것을 가지고 있습니다 .
/a/b/c/[12]
있지만 하위 디렉토리에 단일 문자 이름이있는 경우에만 적합합니다. 에서 bash
당신이 할 수 있습니다 /a/b/c/{1,2}
. 물론 스크립트의 뱅 라인 #!/bin/bash
은 crontab을 사용하고 있거나 crontab을 사용하는 경우 사용하도록 구성되어 있는지 확인해야합니다 bash
(그렇지 않으면 스크립트를 변경하지 않는 것이 좋습니다).
ksh
, bash
그리고 zsh
또한 globs와의 교대 사업자가 있습니다. 참고 -exec rm {} +
경쟁 조건 취약점이 있습니다 -delete
(가능한 경우)을 가지고하지 않습니다. 따라서 다른 사람이 쓸 수있는 디렉토리에서는 사용하지 마십시오. 일부 발견은 또한 -execdir
이러한 취약점을 완화시키는 것을 가지고 있습니다 .
rm -f
하여 어떤 가능한 경쟁 조건을 처리, 자동으로 오류를 처리하지 -exec
?
/a/b/c/
를 지정하여 모든 옵션에 대해 지정할 필요는 없습니까?