为什么此空目录为3.5MB?


16

我刚刚读了一个问题:“ ls -l”命令输出中的目录大小是什么意思?

...这并不能完全回答我的问题。基本上,我是将文件移至NAS。我已经移动的文件夹完全是空的,没有任何隐藏文件或任何东西,但du仍然报告其大小为3.5MB。公认的是,它们以前包含大量文件,且文件名较长。

这个大小仅仅是因为该目录中文件的数量和名称长度吗?既然文件夹为空(ext4文件系统),为什么大小没有减小?


1
du倾向于与人们不同地思考,它基于某些文件系统设置给出报告。您可以在此处使用“ --apparent-size”进行检查:gnu.org/software/coreutils/manual/html_node/du-invocation.html
2013年

将新创建的空目录复制到NAS时,它们报告的大小是什么?您还可以访问运行tune2fs的NAS吗?
slm

您是否考虑了快照?
mdpc

@slm-它们以正常的4096(字节?)大小显示。
shearn89

@mdpc-快照?
shearn89

Answers:


16

当从目录中删除所有文件时,对于大多数文件系统,该目录将保持相同大小。

如果目录为空,

rmdir ./directory_name; mkdir ./directory

生成的新目录将更小。但是随着文件的添加,它会变得更大。不要担心目录文件的大小与单个目录中文件的数目一样多。单个目录中的大量文件会对文件查找性能产生负面影响。即使有足够的inode缓存。


4
1个目录中的大量文件实际上仅对ext文件系统重要。其他诸如xfs,btrfs,reiser等没有相同的问题。
帕特里克

2
那是对的。但是,ufs确实存在其他问题。虽然这个问题严格是ext4,但是这个问题无处不在,所以我提到了它。
jim mcnamara 2013年

除了性能问题之外,在目录中放置太多文件还可能导致其他问题- rm *如果您有1024个以上的文件,则这样做可能会导致问题。
肖恩·麦克索明

@SeanMcSomething您的意思是什么问题?
Hatshepsut

1
@SeanMcSomething我不知道,你从哪里弄来这个废话。进程的命令行可以为半兆或更多。它与文件的数量无关,命令行的总大小有一个限制,正如您所说的那样高得多。
彼得-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.