불행하게도 수백만 개의 파일을 하나의 단일 디렉터리(하위 디렉터리 없이)에 저장하는 응용 프로그램이 있습니다.
주어진 디렉토리에서 ls 또는 find를 수행하면 ls 또는 find는 서버 기가바이트의 RAM을 소비합니다.
그 이유는 ls와 find가 한 디렉토리의 모든 파일을 RAM으로 읽기 때문인 것 같습니다.
내 질문은 다음과 같습니다.
많은 메모리를 소비하지 않고 이 디렉토리의 파일을 나열할 수 있는 방법이 있습니까?
모든 솔루션(특수 옵션/다른 명령/컴파일할 C 프로그램/특수 Python 모듈)이 흥미로울 것입니다.
답변1
다음이 있습니다:
이 ls
명령은 파일 이름뿐만 아니라 fstat()
모든 파일을 읽습니다. 시퀀스 를 사용하면 opendir() / readdir() / close()
훨씬 더 나은 결과를 얻을 수 있습니다.
XFS
그 외에도 디렉터리를 나열하는 데 필요한 리소스도 파일 시스템의 기능입니다. ext4
.