`find` 명령의 높은 메모리 사용량

`find` 명령의 높은 메모리 사용량

find매우 큰 디렉토리에서 명령을 실행할 때 의 find메모리 사용이 내가 생각하는 것보다 훨씬 더 많이 급증한다는 것을 발견했습니다. "find"라는 단어를 과도하게 사용했기 때문에 해결책을 찾는 것이 매우 어렵다는 것을 알았습니다. ;) 다음 명령은 다음과 같습니다.

find /var/dir -size +500k -iname "pattern_*" -mtime +90 -type f -exec rm {} \; -print

find가 디렉토리를 처리하는 동안 디렉토리의 전체 파일 목록을 메모리에 보관합니까? 하나의 항목을 검사하고 계속 진행할 수 있는 것 같습니다. 내가 다루고 있는 디렉토리에는 약 2백만 개의 파일이 있으며 이제 메모리 제한 문제가 발생하기 시작했습니다.

find메모리 사용량을 줄일 수 있는 방법이 있나요 ? 더 잘 작동하는 대안이 있습니까? 이 디렉토리에서 몇 가지 기준을 충족하는 파일을 삭제한 다음 인쇄하면 됩니다. (최후의 해결책은 결과를 스트리밍하여 필요한 작업을 수행하는 자체 프로그램을 작성하는 것입니다 ls...)

관련 정보