如果我在 Unix 中有一个包含 N 个独立条目的文本文件(例如有关员工的记录,其中每个员工都有单独的记录),那么这个文件占用的空间是否比我将文件拆分为 N 个文件(每个文件包含一个员工的条目)占用的空间要小?换句话说,通过将多个文件连接在一起,是否可以在 unix 文件系统上节省大量空间,还是差异可以忽略不计?谢谢。
答案1
这取决于记录长度和文件系统块大小之间的关系。
例如,如果记录长度(以块大小为模)是随机分布的,则将数据连接到更少的文件中将减少浪费的空间。每个文件中的最后一个块平均将为 1/2 满。这就是所谓的内部分裂。如果通过合并文件将文件数量减少一半,则会将 1/2 完整块的数量减少一半。
另一方面,如果每条记录始终是块大小的倍数,则无论文件包含多少条记录,它都会完全填满分配给它的每个块(零内部碎片)。在这种情况下,连接文件的唯一节省就是目录条目较少所带来的节省。