Ubuntu 20.04에서 cronjob을 사용하고 있습니다. 1시간이 지난 파일과 파일 이름이 master-stdout.log로 시작하는 파일만 자동으로 삭제하고 싶습니다.*
어떻게 해야 하나요?
find /root/logs/ * -mmin +60 -exec rm {} \;
답변1
master-stdout.log
이름이 다음으로 시작하고 지난 한 시간 동안 수정되지 않은 파일을 삭제하려면 다음과 같이 반복하십시오 /root/logs/
.
LC_ALL=C find /root/logs/ -name 'master-stdout.log*' -mmin +59 -delete
-mmin
Ubuntu 및 기타 GNU 기반 시스템에서 볼 수 있듯이 여기에서는 GNU 및 확장이 사용됩니다.-delete
find
분 단위로 연령이 선택되는 파일 은 -mmin +60
다음 정수로 반올림됩니다.엄격하게60보다 크다. 따라서 60~61분 사이의 파일은 선택되지 않습니다.
이렇게 하면 유형에 관계없이 모든 파일이 삭제되지만 해당 유형의 파일은 삭제되지 않습니다.목차비어 있지 않은 경우. 또한 디렉터리에서 파일을 삭제하면 디렉터리의 마지막 수정 시간이 업데이트되며 이는 파일이 처리되었음을 -delete
의미합니다.-depth
앞으로find
따라서 디렉터리에서 오래된 파일을 삭제하면 해당 디렉터리가 시작 시 1시간 이상 지난 경우에도 삭제되지 않습니다.
또한 다음 유형의 파일에 대해서는심볼릭 링크이는 고려 중인 심볼릭 링크 대상의 수명이 아니라 심볼릭 링크 자체의 수명입니다.
삭제만정기적인파일(fifo, 소켓, 디렉터리, 심볼릭 링크 등을 포함한 다른 모든 유형의 파일 제외 ) -type f
또는 -delete
.! -type d
목차.