답변:
우분투는 디렉토리의 크기를 제한하지 않으며 파일 시스템에 의해 부과됩니다. 각 파일과 디렉토리는 소위 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
. 프로그램은 종종 그러한 대량의 파일을 기대하지 않습니다.
ext4
파일 확장자가 아닌 파일 시스템 유형입니다. 편집 대기열을위한 디렉토리를 만들 수 없습니까? 이러한 프로그램이 많은 양의 파일로 훌륭하게 실행될 수 있는지 의심합니다.