อูบุนตูไม่ได้ จำกัด ขนาดของไดเรกทอรีมันถูกกำหนดโดยระบบไฟล์ แต่ละไฟล์และไดเรกทอรีเป็น inode ที่เรียกว่า คุณสามารถใช้df -iเพื่อตรวจสอบจำนวนของ inodes ที่ใช้งานอยู่และพร้อมใช้งานสำหรับระบบไฟล์ที่เมาท์ทั้งหมด
ฉันเพิ่งสร้าง 1 ล้านไฟล์และหนึ่งไฟล์โดยไม่มีปัญหาเพราะขีด จำกัด inode ของฉันสำหรับพาร์ติชันในบ้าน ext4 ของฉัน 50 GB (46 GiB) มีขนาดใหญ่พอ
ฉันใช้ส่วนขยายของเชลล์เพื่อสร้างไฟล์รวมกับ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
และจำนวนของ inodes ที่ใช้งานลดลงทันทีหลังจากลบไฟล์:
/dev/sda6 3055616 133634 2921982 5% /home
โปรดทราบว่าแม้ว่าระบบไฟล์จะอนุญาตให้มีไฟล์จำนวนมาก แต่ก็เป็นความคิดที่น่ากลัวที่จะเก็บไฟล์ขนาดใหญ่ไว้ในไดเรกทอรีเดียว f/i/l/e/filename.extอย่างน้อยใช้ไดเรกทอรีย่อยบางคนที่มีโครงสร้างเหมือน โปรแกรมมักไม่คาดหวังว่าจะมีไฟล์จำนวนมาก
ext4เป็นประเภทระบบไฟล์ไม่ใช่นามสกุลไฟล์ คุณไม่สามารถสร้างไดเรกทอรีเพื่อรอการแก้ไขได้ใช่ไหม ฉันสงสัยว่าโปรแกรมเหล่านั้นสามารถทำงานได้ดีกับไฟล์จำนวนมาก