나는 리눅스의 디렉토리에있는 파일의 수를 빠르게 찾을 방법을 찾고있다.리눅스의 한 디렉토리에있는 파일 수를 찾는 빠른 방법
디렉토리의 파일 수가 선형 적으로 소요되는 솔루션은 허용되지 않습니다 (예 : "ls | wc -l"및 이와 유사한 것). 시간이 너무 오래 걸릴 수 있습니다 (수십 또는 어쩌면 디렉토리에있는 수억 개의 파일).
디렉토리 항목을 저장하는 데 사용되는 데이터 구조의 일부로 디렉토리의 파일 수가 파일 시스템 구조 (inode?)에 간단한 번호로 저장되어야합니다. 어떻게해야합니까? 이 번호로?
편집 : 파일 시스템은 ext3입니다. 이 작업을 수행 할 이동식 방법이 없다면 ext3에 특정한 작업을 기꺼이 수행 할 것입니다.
거의 중복 : http : // stackoverflow.co.kr/questions/1427032/fast-linux-file-count-for-large-number-of-files는 표준 ls의 속도를 높이는 방법에 대해 이야기합니다. wc-l – Mark
이것이 어딘가에 일반 숫자로 저장되어 있다고 생각하지 않습니다. (스펙을 읽지는 않았습니다.) 단순히 FS 속도가 느려지므로 신뢰할 수있는 결과를 얻으려면 touch/unlink/mv 등을 동기화해야합니다. 충돌이 발생하면 번호가 손상 될 수 있으므로 어떤 시점에서 파일을 다시 읽어야합니다 . 또한 적어도 내 우분투 노틸러스에서 디렉토리 자체에있는 객체의 수를 캐시합니다. 기본 FS에 숫자가 있으면 그렇게 할 것이라고 생각하지 않습니다. –
내가 궁금한 것은 ... 항목 수와 관련된 디렉토리 항목의 크기 (즉, 상위 디렉토리에서 ls -l을했을 때 디렉토리에 표시되는 크기)입니까? 이 디렉토리의 경우 평소보다 커 보이는 것 같습니다. – HighCommander4