在Linux系统中,查看文件大小是日常运维和开发中的常见需求,不同命令提供了多样化的查看方式,适用于不同场景,本文将详细介绍几种常用命令及其用法,帮助用户高效获取文件大小信息。
ls
命令:快速查看文件大小
ls
是Linux中最基础的文件列表命令,配合参数可直观显示文件大小。
基础用法
ls -l
:以长格式显示文件详细信息,包括权限、所有者、大小、修改时间等,第5列即为文件大小,默认以字节(Byte)为单位。ls -l example.txt # 输出示例:-rw-r--r-- 1 user group 1024 Oct 20 10:30 example.txt # 1024即文件大小(字节)
ls -lh
:-h
参数将大小转换为人类可读格式(KB、MB、GB等),更直观。ls -lh example.txt # 输出示例:-rw-r--r-- 1 user group 1.0K Oct 20 10:30 example.txt
ls -la
:-a
参数显示包括隐藏文件(以开头的文件)在内的所有文件,结合-l
可查看隐藏文件大小。
du
命令:统计目录或文件磁盘占用
du
(Disk Usage)主要用于统计文件或目录的磁盘空间占用,与ls
不同,du
计算的是实际占用的块大小(可能因文件系统碎片化略大于文件实际大小)。
常用参数
du -sh
:-s
仅显示总计大小,-h
以人类可读格式输出,适合快速查看目录总占用。du -sh /home/user/documents # 输出示例:2.5G /home/user/documents
du -h --max-depth=1
:查看当前目录下一级子目录的大小,--max-depth=1
限制递归深度。du -h --max-depth=1 /var/log # 输出示例:1.2G /var/log/apt # 450M /var/log/journal # 100K /var/log/alternatives
du -ah
:递归显示所有文件和目录的大小,-a
包含文件,适合精细分析目录结构。
stat
命令:查看文件详细属性及大小
stat
命令用于显示文件的详细状态信息,包括文件大小、 inode 号、权限、访问/修改时间等,适合需要精确信息的场景。
基础用法
stat example.txt # 输出示例: # File: example.txt # Size: 1024 Blocks: 8 IO Block: 4096 regular file # Device: 801h/2049d Inode: 131075 Links: 1 # Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ group) # Access: 2023-10-20 10:30:00.000000000 +0800 # Modify: 2023-10-20 10:30:00.000000000 +0800 # Change: 2023-10-20 10:30:00.000000000 +0800 # Birth: -
其中Size
字段即为文件的实际大小(字节)。
find
命令:按大小查找文件
find
命令可结合-size
参数按文件大小查找文件,适合批量筛选特定大小的文件。
常用参数
-size +100M
:查找大于100MB的文件;-size -100K
:查找小于100KB的文件;-size 1G
:查找大小恰好为1GB的文件。find /var -type f -size +100M # 在/var目录下查找大于100MB的文件 find /home -type f -size 10M # 在/home目录下查找大小为10MB的文件
不同命令对比总结
命令 | 主要功能 | 常用参数 | 适用场景 |
---|---|---|---|
ls |
列出文件及大小 | -l , -h , -a |
快速查看当前目录文件大小 |
du |
统计磁盘占用 | -s , -h , --max-depth |
分析目录/文件磁盘空间使用情况 |
stat |
显示文件详细属性 | 无(直接执行) | 查看文件精确大小及元数据 |
find |
按条件查找文件 | -size , -type |
批量筛选特定大小的文件 |
相关问答FAQs
Q1:为什么ls
显示的文件大小和du
显示的不一样?
A:ls
显示的是文件的实际内容大小(如1024字节),而du
统计的是文件在磁盘上占用的块大小(文件系统以块为单位存储,默认块大小为4KB,即使文件只有1字节,也会占用1个块)。du
会计算目录下所有子文件和子目录的占用,而ls
仅显示单个文件大小,因此两者结果可能存在差异。
Q2:如何查找系统中所有大于1GB的文件?
A:使用find
命令结合-size
参数,通过+1G
表示大于1GB,-type f
限定仅查找文件(排除目录)。
find / -type f -size +1G 2>/dev/null
其中2>/dev/null
用于屏蔽权限不足等错误信息,避免输出干扰。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/14641.html