Ubuntu không giới hạn kích thước của một thư mục, nó được áp đặt bởi hệ thống tệp. Mỗi tập tin và thư mục là một cái gọi là inode. Bạn có thể sử dụng df -i
để kiểm tra số lượng inodes đang sử dụng và có sẵn cho tất cả các hệ thống tập tin được gắn kết.
Tôi mới tạo 1 triệu và một tệp mà không gặp sự cố nào vì giới hạn inode của tôi cho phân vùng nhà ext4 là 50 GB (46 GiB) là đủ lớn.
Tôi đã sử dụng mở rộng shell để tạo các tệp, kết hợp với touch
tiện ích:
mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}
Điều này tạo ra 1000001 tập tin có thể được xác minh với ls | wc -l
. Tại sao 300000..600000
và không 300001..600000
? Bởi vì tôi đã quá lười biếng để đặt 1 cái đó vào cuối.
df -i
giống như:
/dev/sda6 3055616 1133635 1921981 38% /home
Bây giờ hãy xóa các tệp kiểm tra ( cd ..&&rm -f test
mất nhiều thời gian hơn, vì vậy hãy sử dụng rm
với tên tệp):
rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f
và số lượng nút được sử dụng giảm ngay sau khi xóa các tệp:
/dev/sda6 3055616 133634 2921982 5% /home
Lưu ý rằng ngay cả khi hệ thống tệp cho phép số lượng tệp lớn như vậy, thì việc lưu trữ các tệp lớn như vậy trong một thư mục là một ý tưởng khủng khiếp. Ít nhất là sử dụng một số thư mục con có cấu trúc như thế nào f/i/l/e/filename.ext
. Các chương trình thường không mong đợi số lượng lớn các tập tin như vậy.
ext4
là một loại hệ thống tập tin, không phải là một phần mở rộng tập tin. Bạn không thể tạo một thư mục để xếp hàng chỉnh sửa? Tôi nghi ngờ rằng những chương trình đó có thể chạy tốt với số lượng tệp lớn như vậy.