Ubuntu bir dizinin boyutunu sınırlamaz, dosya sistemi tarafından empoze edilir. Her dosya ve dizin sözde bir inode'dur. Sen kullanabilirsiniz df -i
tüm dosya sistemlerini monte için kullanımda ve kullanılabilir düğüm sayısını kontrol etmek.
Sorunsuz bir şekilde 1 milyon ve bir dosya oluşturdum çünkü 50 GB'lik ext4 ev bölümüm için inode limitim yeterince büyük.
touch
Yardımcı programla birlikte dosyaları oluşturmak için kabuk genişletme kullandım :
mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}
Bu, doğrulanabilecek 1000001 dosya oluşturur ls | wc -l
. Neden 300000..600000
ve değil 300001..600000
? Çünkü sonunda bu 1'i koymak için çok tembeldim.
df -i
benziyor:
/dev/sda6 3055616 1133635 1921981 38% /home
Şimdi test dosyalarını kaldırın ( cd ..&&rm -f test
daha uzun sürdü, bu yüzden rm
dosya isimleriyle kullanın ):
rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f
ve kullanılan inode sayısı, dosyaların kaldırılmasından hemen sonra azaldı:
/dev/sda6 3055616 133634 2921982 5% /home
Dosya sistemi bu kadar çok sayıda dosyaya izin verse bile, bu kadar büyük dosyaları tek bir dizinde saklamanın korkunç bir fikir olduğunu unutmayın. En azından gibi bir yapıya sahip bazı alt dizinleri kullanın f/i/l/e/filename.ext
. Programlar bu kadar büyük miktarda dosya beklememektedir.
ext4
dosya uzantısı değil bir dosya sistemi türüdür. Düzenlemeleri sıralamak için bir dizin oluşturamıyor musunuz? Bu programların bu kadar büyük dosya miktarlarıyla iyi çalışabileceğinden şüpheliyim.