前言本文将与大家分享Linux系统中如何查看目录大小的相关知识点和查看技巧。相信很多小伙伴都是被文章标题逼进来看的,以为linux下查看目录大小的命令是ls-l?再者,人类能理解的就是ls-lh,不就是这两个命令吗?答疑解惑1、首先根据大家的想法,我们可以通过ls-lh/查看根目录下各个文件目录的大小。我在本机上查了一下如下图:熟悉ls命令的朋友都知道,上面是在根目录下列出的目录,最大只有8KB,大部分是4KB。这显然不是我们正在查看的文件目录的实际大小。这是怎么回事?2、我们再通过ls-lh/java_ruanjian/命令查看一下/java_ruanjian/目录的大小,如下图所示:此时该目录下的文件大小为139MB。为什么会这样?其实这里简单概括就是:ls-lh可以得到普通文件的大小,但是对于目录得到的4K,就是目录文件的大小(也就是目录本身占4K),而不能目录中所有文件的大小。在linux系统中,目录中只保存了文件名和文件的inode号,相当于里面文件的指针,所以系统会根据文件号给目录分配几个block目录中的names和inodes,以及block文件的大小一般为4K。如果目录中的文件名过多,则可能会为该目录分配2个或更多块。那么我们如何查看linux文件目录的实际大小呢?请继续往下看。通过du命令查看文件目录的大小其实在linux系统中可以使用du命令查看文件目录的大小。du:英文是diskusage(磁盘使用率,磁盘空间占用)。一个文件占用的磁盘空间和一个文件的大小是两个不同的东西。占用空间取决于文件系统的块大小。Linux一般默认为4KB。因此,一个1字节大小的文件至少要占用4K。如果在创建文件系统时指定了16K的块大小,那么即使一个文件只有1个字节,也占用了16K的空间。du命令的主要语法如下:du[-abcDhHklmsSx][-L<符号链接>][-X<文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]du命令参数说明如下:-a或-all:显示目录中单个文件的大小目录。-b或-bytes:显示目录或文件大小时,单位为byte。-c或--total:除了显示单个目录或文件的大小外,还显示所有目录或文件的总和。-D或--dereference-args:显示指定符号链接的源文件大小。-h或--human-readable:以K、M、G为单位,提高信息的可读性。-H或--si:与-h参数相同,但K、M、G以1000为单位进行转换。-k或--kilobytes:以1024字节为单位。-l或--count-links:硬件链接的文件计数过多。-L
