program story

"인수 목록이 너무 길다"는 경우 3 일이 지난 모든 파일을 삭제하는 방법은 무엇입니까?

inputbox 2020. 9. 9. 07:59
반응형

"인수 목록이 너무 길다"는 경우 3 일이 지난 모든 파일을 삭제하는 방법은 무엇입니까?


82000 개의 파일과 디렉토리가있는 로그 파일 디렉토리가 있습니다 (약 반반).

3 일이 지난 파일과 디렉토리를 모두 삭제해야합니다.

37000 개의 파일이있는 디렉토리에서 다음을 사용하여이 작업을 수행 할 수 있습니다.

find * -mtime +3 -exec rm {} \;

그러나 82000 개의 파일 / 디렉토리를 사용하면 오류가 발생합니다.

/ usr / bin / find : 인수 목록이 너무 깁니다.

3 일이 지난 모든 파일 / 디렉터리를 삭제할 수 있도록이 오류를 어떻게 해결할 수 있습니까?


현재 디렉토리 내의 모든 파일 디렉토리 를 삭제하려면 :

find . -mtime +3 | xargs rm -Rf

또는 OP의 원래 명령과 더 일치합니다.

find . -mtime +3 -exec rm -Rf -- {} \;

다음을 사용할 수도 있습니다.

find . -mindepth 1 -mtime +3 -delete

대상 디렉터리를 삭제하지 않으려면


원래 질문에 대한 또 다른 해결책, esp. 폴더에서 이전 파일 중 일부만 제거하려는 경우 유용합니다.

find . -name "*.sess" -mtime +100 

등등 .. 인용 부호는 쉘 와일드 카드를 차단하므로 수백만 개의 파일을 "찾을"수 있습니다. :)

참고 URL : https://stackoverflow.com/questions/14731133/how-to-delete-all-files-older-than-3-days-when-argument-list-too-long

반응형