Mar*_*ngs 10 ls filesystems size directory ext4
今天我发现了一个大小为 4MB 的“空”目录。
它没有可见的内容,所以我尝试了ls -lah
. 这向我展示了一些隐藏文件(不是很大)。搜索目录如此大的原因,我发现点文件 ( .
) 的大小为 3.9MB。
该文件中存储了什么?这不就是一种指向同一目录的链接吗?
这是外壳输出(匿名):
-bash# more /proc/version
Linux version 2.6.18-8.1.15.el5 (mockbuild@builder6.centos.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Mon Oct 22 08:32:04 EDT 2007
-bash# pwd
/data/foo/bar/tmp
-bash# ls -lah
total 4.1M
drwxrwxrwx 3 nobody nobody 3.9M Nov 21 10:02 .
drwxrwxrwx 16 nobody nobody 4.0K Aug 27 17:26 ..
-rw------- 1 root root 20K Oct 25 14:06 .bash_history
...
Run Code Online (Sandbox Code Playgroud)
小智 14
点文件与每个目录一样,包含此目录中文件的名称列表及其 inode 编号。因此,如果您曾经在该目录中有很多文件(对于“tmp”目录来说不太可能),这会使目录条目增长到这个大小。
文件消失后,文件系统不会再次自动收缩目录文件。
您可以自己尝试创建一个新的空目录,ls -la
在其中查看初始大小(在我的机器上为 4096),然后touch
输入大量文件,这将使目录大小增加。
(是的,我知道我在这里掩盖了很多细节/不准确。但 OP 没有要求对 EXT* 文件系统的工作方式进行完整解释。)