方法一:ls -l 输出的第五列

ls 是列出指定目录下文件列表的命令,通过 -l 选项可以显示文件的属性信息,第五列显示的就是文件的大小。

  • 统计原理:通过 ls -l 查看某个文件的大小时,是读取该文件inode块(存储属性信息部分)中记录的文件大小字段的值。
  • 默认单位:字节(Byte)
  • 使用场景:需要快速查看某个非目录文件的大小,不适合脚本中使用。
  • 常用参数
    • -h:会根据文件的大小来自动选择显示单位。
  • 使用限制:不能统计某个目录文件中所有文件大小的总和,查看目录文件大小时显示的是目录的元数据大小(一般是 4096 字节)

例如:查看某个文本文件的大小

在这里插入图片描述

方法二:du 命令的输出信息

du 命令(Disk Usage)显示的是文件或目录实际占用的磁盘空间,不是文件真实内容大小。

  • 统计原理:通过读取 inode 中的 st_blocks 字段来知道该文件数据部分占用了多少数量的block,然后再乘以块大小(通常为 512B 或 4KB)来计算总占用量。
  • 默认单位:千字节(KB)
  • 使用场景:需要查看单个文件或统计整个目录所占用的硬盘空间大小。
  • 常用单位
    • -h:会根据文件的大小来自动选择显示单位。
    • -s:查看某个目录时,只输出该目录及其目录下的所有文件占用的硬盘空间大小。
  • 使用限制:因为需要遍历子目录和子文件,再系统高负载或者文件多且大的时候,统计速度很慢。

例如:查看指定目录的硬盘空间占用
在这里插入图片描述

方法三:stat -c %s 的输出

stat 命令是一个用于显示文件状态信息的命令,但是stat 提供的 -c(或 --format)可以自定义需要输出的内容,%s 表示以字节为单位输出文件的大小。

  • 统计原理:统计文件大小的时候,是通过读取inode 中记录的文件大小字段来输出文件的大小,所以统计文件大小的速度很快。
  • 命令格式stat -c %s filename
  • 默认单位:字节(Byte)
  • 使用场景:一般用于需要精确快速查看某个非目录文件大小的场景,例如脚本文件中。
  • 使用限制:统计目录文件时候,只能看到目录的元数据大小,不会输出目录总大小

例如:查看某个文本文件的大小

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐