อูบุนตูไม่ได้ จำกัด ขนาดของไดเรกทอรีมันถูกกำหนดโดยระบบไฟล์ แต่ละไฟล์และไดเรกทอรีเป็น 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
เป็นประเภทระบบไฟล์ไม่ใช่นามสกุลไฟล์ คุณไม่สามารถสร้างไดเรกทอรีเพื่อรอการแก้ไขได้ใช่ไหม ฉันสงสัยว่าโปรแกรมเหล่านั้นสามารถทำงานได้ดีกับไฟล์จำนวนมาก