Linux "ls -al"查看 所有目录的文件容量都是4096Bytes是怎么回事?

都是4096是怎么回事?不是应该是是目录里的所有内容的大小总和吗?
新手求教

在Linux下一切皆文件,因此目录也是文件。所以,通过 ls -al 命令显示的目录大小并非常规意义上包含其子文件的总大小,而是单纯指的是目录的大小。这一点和Windows并不一样。

请注意一点,其实Linux下目录的大小并不都是4096的。

那么为什么大部分的目录大小都是4096呢?这需要从Linux文件的存储机制说明。

    文件储存在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。

    操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。

    文件数据都储存在“块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为“索引节点”。

    每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

而Linux系统中,目录(directory)也是一种文件。打开目录,实际上就是打开目录文件。目录文件的结构非常简单,就是一系列目录项(dirent)的列表。每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。

所以ls -al命令实际显示的就是目录文件的大小。又因为OS定义的文件最小存取单位“块”(block)是4KB,所以目录一般显示为4096B。

如果你需要看目录的总大小可以用 du 命令,楼上说的很详细了。

PS:OS系统块的大小是可以修改的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-03-14
显示的 4096Bytes 这个不是文件的容量大小
如果要查看文件或者的大小,使用 du -sh命令,例如:
du -sh aaa.txt 这个是查看aaa.txt文件大小,同样也可以查看文件夹总的大小。
第2个回答  2014-10-05
没有问题。看看我的。可惜传不了图片,给你贴一下。

root@FreeBSD:~ # ls -al
total 56
drwxr-xr-x 8 root wheel 512 10 3 02:32 .
drwxr-xr-x 20 root wheel 1024 10 5 19:53 ..
drwx------ 3 root wheel 512 10 2 20:59 .cache
drwxr-xr-x 8 root wheel 512 10 3 03:02 .config
-rw-r--r-- 2 root wheel 964 9 8 10:28 .cshrc
drwx------ 3 root wheel 512 10 2 21:43 .dbus
-rw------- 1 root wheel 2581 10 5 19:52 .history
-rw-r--r-- 1 root wheel 147 9 8 10:28 .k5login
drwx------ 3 root wheel 512 10 2 22:12 .local
-rw-r--r-- 1 root wheel 295 9 8 10:28 .login
-rw-r--r-- 2 root wheel 252 9 8 10:28 .profile
drwx------ 3 root wheel 512 10 2 23:15 .scim
-rw-r--r-- 1 root wheel 48 10 2 20:31 .xinitrc
drwxr-xr-x 2 root wheel 512 10 2 21:43 Desktop本回答被网友采纳
第3个回答  2014-10-05

查看‘.kde'目录占用磁盘大小:

du -h -d 0 .kde

    -h , 简单可读的现实大小,自动判断B,K,M,G...

    -d 0 , 现实列表深度为0,就是只现实.kde目录的占用

    详情:

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网