ls(List)是Linux中最基础的文件列表命令,通过添加-l(长格式)和-h(人类可读)选项,可快速查看文件的逻辑大小(内容实际字节数)及易读格式(KB、MB、GB)。
ls -lh 文件名ls -lh example.txt-rw-r--r-- 1 user group 66M Apr 2 2015 example.txt66M)即为文件大小,-h选项将字节自动转换为易读单位(如K、M、G);若省略-h,则默认以字节显示(如69206016)。ls -l显示的是文件的逻辑大小(内容实际占用的字节数),而非磁盘占用空间。du(Disk Usage)用于估算文件或目录在磁盘上的实际占用空间(受文件系统块大小影响,可能大于逻辑大小)。其核心优势是支持递归统计目录及人类可读格式。
du -h 文件名du -h example.txt4.0K example.txt(表示文件占用4KB磁盘空间)。du -sh 目录名du -sh /home/user/Documents1.2G /home/user/Documents(-s选项汇总目录总大小,-h易读格式)。du -ah 目录名du -ah /etc4.0K /etc/passwd、12K /etc/group(-a选项显示所有文件,包括隐藏文件)。stat用于显示文件的完整元信息,包括精确的字节大小(逻辑大小)、占用块数、IO块大小、权限、时间戳等,适合需要精准数据的场景。
stat 文件名stat example.txtFile: example.txt
Size: 69206016 Blocks: 136 IO Block: 4096 regular file
Device: 802h/2050d Inode: 5243072 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ group)
Access: 2025-10-01 10:00:00.000000000 +0800
Modify: 2025-09-30 18:30:00.000000000 +0800
Change: 2025-09-30 18:30:00.000000000 +0800
说明:Size字段为文件逻辑大小(字节),Blocks为占用块数,IO Block为文件系统块大小。stat -c "%s" 文件名stat -c "%s" example.txt69206016(直接输出文件逻辑大小,适合脚本处理)。wc(Word Count)主要用于统计文件的行数、单词数、字节数,其中-c选项可快速获取文件逻辑大小(字节数)。
wc -c 文件名wc -c example.txt69206016 example.txt(第一个数字为字节数,后面为文件名)。wc -c的结果与ls -l的逻辑大小一致,但输出格式更简洁,适合脚本中提取字节数。find用于查找文件或目录,结合-exec选项可批量执行stat命令,快速获取目录下所有文件的逻辑大小(适合批量处理场景)。
find 目录名 -type f -exec stat -c "%s %n" {} \;find /etc -type f -exec stat -c "%s %n" {} \;1234 /etc/passwd
5678 /etc/group
91011 /etc/hosts
说明:-type f仅查找文件(排除目录),%s为文件大小(字节),%n为文件名。| 工具/命令 | 查看内容 | 单位 | 是否递归 | 适用场景 |
|---|---|---|---|---|
ls -lh |
文件逻辑大小 | KB/MB/GB | 否 | 快速查看单个文件大小 |
du -h |
文件/目录磁盘占用空间 | KB/MB/GB | 是 | 查看目录总大小或磁盘使用情况 |
stat |
文件逻辑大小+元数据 | 字节 | 否 | 需要精准数据的场景 |
wc -c |
文件逻辑大小 | 字节 | 否 | 脚本中提取字节数 |
find + stat |
批量文件逻辑大小 | 字节 | 是 | 批量处理目录下所有文件 |
以上工具覆盖了Linux下查看文件大小的主要需求,可根据具体场景选择使用。例如:快速查看单个文件大小用ls -lh,查看目录总大小用du -sh,需要精准字节数用stat,批量处理用find + stat。