Answers:
Ubuntu没有限制目录的大小,它是由文件系统强加的。每个文件和目录都是一个所谓的索引节点。您可以df -i
用来检查正在使用并且可用于所有已挂载文件系统的索引节点数。
我刚刚创建了100万个文件,一个文件没有问题,因为我的ext4主分区50 GB(46 GiB)的inode限制足够大。
我使用shell扩展来创建文件,并结合了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
是文件系统类型,而不是文件扩展名。您无法创建用于编辑队列的目录吗?我怀疑这些程序能否在如此大的文件量下运行良好。