![높은 inode 파티션에서 디렉토리 나열 속도를 높이는 방법은 무엇입니까?](https://linux55.com/image/61987/%EB%86%92%EC%9D%80%20inode%20%ED%8C%8C%ED%8B%B0%EC%85%98%EC%97%90%EC%84%9C%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%20%EB%82%98%EC%97%B4%20%EC%86%8D%EB%8F%84%EB%A5%BC%20%EB%86%92%EC%9D%B4%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
한 디렉터리에 거의 7,000개의 파일이 있어서 해당 특정 디렉터리를 로드하는 것이 지루하고 시간이 많이 걸립니다. 파일을 여러 하위 폴더에 분산시키는 것(더 어렵게 만드는)보다 해당 디렉터리의 파일을 더 빠르게 나열하고 작업할 수 있는 방법이 있습니까?
ext4를 사용하고 있습니다. 그러나 efs 파일 시스템에서도 동일한 정보를 받았습니다.
답변1
큰 디렉토리는 단순히 파일을 나열하는 것 이외의 여러 가지 이유로 문제가 될 수 있습니다. 한편, 파일을 찾을 때까지 디렉터리를 읽어야 하기 때문에 이 디렉터리에서 파일을 여는 데 필요한 시간이 늘어납니다. ext*를 포함한 많은 파일 시스템에서 디렉토리 항목은 검색 효율성을 위해 구성되거나 최적화되지 않습니다.
귀하의 특정 질문에 대답하려면 관련 정렬로 인해 ls를 사용하는 데 시간이 걸린다는 것을 알게 될 것입니다. 해결책은 ls를 정렬되지 않은 상태로 실행하는 것입니다(ls 배포판에 그러한 옵션이 있는 경우). 특히 파일 정렬을 해제하고 정렬할 수도 있습니다. 그런 다음 다른 ls 작업을 수행하지 않고도 파일을 참조할 수 있습니다.
또 다른 유사한 접근 방식은 find 명령을 사용하여 디렉토리 내용을 파일에 나열하고(파일은 정렬되지 않음) 거기에서 이동하는 것입니다.
따라서 접근성, 효율성 및 파일 찾기 용이성을 기반으로 여러 하위 디렉터리를 사용하는 것이 좋습니다.