当前位置: 首页 > 科技观察

你真的知道如何查看Linux目录大小吗?

时间:2023-03-13 00:33:50 科技观察

前言本文将与大家分享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或--dereference:显示选项中指定的符号链接的源文件大小。-m或--megabytes:以1MB为单位。-sor--summarize:只显示总数。-S或--separate-dirs:显示单个目录大小时,不包括其子目录的大小。-x或--one-file-xystem:以开始处理的文件系统为准,遇到其他不同的文件系统目录则跳过。-X或--exclude-from=:在中指定目录或文件。--exclude=<目录或文件>:跳过指定的目录或文件。--max-depth=<目录层数>:忽略超过指定层数的目录。--help:显示帮助。--version:显示版本信息。看到这个大推送参数,大家慌了!别着急,今天我只讲重点,也就是几个常用的参数,应付查看文件目录大小的参数就够了。du命令实战解释下面通过/haodao/linux/test01文件目录对常用参数进行实战解释。1、检查/haodao/linux/test01目录的大小。命令如下:[root@haodaolinux1~]#du-h/haodao/linux/test0150M/haodao/linux/test012。查看/haodao目录下的各个目录(包括其他子目录的大小),命令如下:[root@haodaolinux1~]#du-h/haodao50M/haodao/linux/test01100M/haodao/linux238M/haodao3,查看/haodao目录的大小,只声明目录总数,命令如下:[root@haodaolinux1~]#du-sh/haodao238M/haodao4。使用--max-depth=参数指定目录层级来查找目录文件的大小。命令如下:[root@haodaolinux1~]#du-h--max-depth=1/haodao100M/haodao/linux238M/haodao[root@haodaolinux1~]#du-h--max-depth=2/haodao50M/haodao/linux/test01100M/haodao/linux238M/haodao以上命令分别指定/haodao目录的目录级别为1,目录级别为2,当目录级别为1时,只有文件目录下的大小/haodao目录将被列出。当目录级别为2时,列出/haodao/linux目录下文件目录的大小。结语本文从一个大家平日容易忽略的知识点出发,用具体的例子来带大家了解Linux下文件目录的大小。希望能给您的工作带来一些便利。