find 및 anacron을 사용하여 정리 스크립트

find 및 anacron을 사용하여 정리 스크립트

~/Downloads에서 오래된 파일을 자동으로 삭제하고 싶습니다. 이름에 '!'가 포함된 경우는 제외됩니다. 내 현재 버전은 다음과 같습니다.

find /home/user/Downloads/ -mtime +90 ! -path '*!*' -delete

다음과 같이 테스트할 때*:

find /home/user/Downloads/ -depth -mtime +90 ! -path '*!*' -print

결과 :

/home/user/Downloads/old.file
/home/user/Downloads

/home/user/Downloads아직 포함된 내 디렉토리를 삭제하고 싶지 않습니다.!protected.old.file

나는 그것이 anacron에서 실행되기를 원하므로 globbing을 사용하는 것이 좋은 생각인지 확실하지 않습니다.

*참고, 이는 -depth암시적입니다 -delete.

답변1

특정 경로 를 find삭제로부터 보호하려면 를 사용하세요 -mindepth 1. rmdir파일을 삭제하면 포함된 디렉터리의 액세스 및 수정 시간이 변경되므로 이전 디렉터리의 파일이 삭제되면 테스트가 무효화됩니다. 따라서 두 번째 실행 시 빈 디렉터리를 삭제하는 것이 성공할 가능성이 더 높습니다.

관련 정보