以下所有目录均为空
[user@xxxx ~]$ ls -lah /home/1m
total 387M
drwxr-xr-x 22 foo foo 4.0K Apr 17 22:49 .
drwxr-xr-x 10 foo foo 4.0K Apr 17 22:49 ..
drwxr-xr-x 2 foo foo 9.2M Apr 17 22:49 dir_1
drwxr-xr-x 2 foo foo 13M Apr 17 22:49 dir_2
drwxr-xr-x 2 foo foo 39M Apr 17 22:49 dir_3
drwxrwxr-x 2 foo foo 9.2M Jan 19 01:00 dir_4
drwxr-xr-x 2 foo foo 49M Apr 17 22:49 dir_5
drwxrwxr-x 2 foo foo 9.3M Jan 19 01:00 dir_6
drwxr-xr-x 2 foo foo 12M Apr 17 22:49 dir_7
drwxrwxr-x 2 foo foo 9.0M Jan 19 01:00 dir_8
drwxrwxr-x 2 foo foo 9.2M Jan 19 01:00 dir_9
drwxrwxr-x 2 foo foo 9.3M Jan 19 01:00 dir_10
drwxrwxr-x 2 foo foo 9.1M Jan 19 01:00 dir_11
drwxrwxr-x 2 foo foo 9.9M Jan 19 01:00 dir_12
drwxrwxr-x 2 foo foo 31M Jan 19 01:00 dir_13
drwxr-xr-x 2 foo foo 24M Apr 17 22:49 dir_14
drwxrwxr-x 2 foo foo 9.9M Jan 19 01:00 dir_15
drwxrwxr-x 2 foo foo 9.3M Jan 19 01:00 dir_16
drwxr-xr-x 2 foo foo 97M Apr 17 22:49 dir_17
drwxr-xr-x 2 foo foo 12M Apr 17 22:49 dir_18
drwxrwxr-x 2 foo foo 9.9M Jan 19 01:00 dir_19
drwxrwxr-x 2 foo foo 9.3M Jan 19 01:00 dir_20
例如
[user@foo ~]$ time ls -lah /home/1m/dir_5/
total 49M
drwxr-xr-x 2 foo foo 49M Apr 17 22:49 .
drwxr-xr-x 22 foo foo 4.0K Apr 17 22:49 ..
为什么该目录似乎有49M的内容?
- - - 编辑 - - -
文件系统 ext4
xfs 文件系统中是否也发生了同样的事情?
答案1
ls
不会告诉您目录内容的大小。
ls
(在这种情况下)告诉您代表目录的 inode 的大小。
最有可能的是,此目录曾经包含大量文件,这需要 inode 足够大才能容纳指向每个文件的文件系统指针。当文件从目录中删除时,目录 inode 不会缩小。