이 질문은 이것과 관련 이 있습니다.
애니메이션을 사용하여 단일 디렉토리에 일반적으로 저장된 많은 파일 (+/- 1,000,000)을 생성합니다. Mac Os X에서는 일부 버그에 +/- 30,000 개 이상의 파일이 생겨서 애니메이션을 다양한 디렉토리로 나누었습니다.
우분투에서 단일 디렉토리가 보유 할 수있는 파일 수에 제한이 있습니까?
답변
우분투는 디렉토리의 크기를 제한하지 않으며 파일 시스템에 의해 부과됩니다. 각 파일과 디렉토리는 소위 inode입니다. 사용 df -i
중인 마운트 된 모든 파일 시스템에 사용 가능한 inode 수를 확인하는 데 사용할 수 있습니다 .
내 ext4 홈 파티션의 50GB (46GiB)에 대한 inode 제한이 충분히 크기 때문에 문제없이 백만 개의 파일 하나만 만들었습니다.
touch
유틸리티 와 결합하여 파일을 만들기 위해 쉘 확장을 사용했습니다 .
mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}
로 확인할 수있는 1000001 파일이 생성됩니다 ls | wc -l
. 왜 300000..600000
그렇지 300001..600000
않습니까? 나는 그 1을 끝에 놓기에는 너무 게으 르기 때문에.
df -i
다음과 같습니다
/dev/sda6 3055616 1133635 1921981 38% /home
이제 테스트 파일을 제거하십시오 (시간 cd ..&&rm -f test
이 오래 rm
걸리므로 파일 이름과 함께 사용 하십시오).
rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f
파일을 제거한 직후에 사용중인 inode 수가 감소했습니다.
/dev/sda6 3055616 133634 2921982 5% /home
파일 시스템이 많은 수의 파일을 허용하더라도 이러한 큰 파일을 단일 디렉토리에 저장하는 것은 끔찍한 아이디어입니다. 적어도 같은 구조를 가진 일부 서브 디렉토리를 사용하십시오 f/i/l/e/filename.ext
. 프로그램은 종종 그러한 대량의 파일을 기대하지 않습니다.