Linux如何查看文件大小?

Linux系统中,查看文件大小是日常管理和系统维护的基础操作,无论是排查磁盘占用、优化存储空间,还是分析日志文件,都需要准确获取文件的大小信息,Linux提供了多种命令来查看文件大小,每种命令的功能、适用场景和输出格式各有侧重,本文将详细介绍这些命令的使用方法及注意事项。

linux如何查看文件的大小

ls命令:快速查看文件及目录大小

ls(list)是最常用的文件列表命令,通过结合不同选项,可以灵活显示文件的大小信息。

基础用法:ls -l

-l选项以长格式输出文件详情,其中第5列即为文件大小(默认单位为字节)。

$ ls -l test.txt
-rw-r--r-- 1 user user 1024 Oct 1 10:00 test.txt

输出中1024表示文件大小为1024字节,对于目录,ls -l显示的是目录本身的大小(通常为4096字节,即目录元数据大小),而非目录下文件的总大小。

人类可读格式:ls -lh

-h(human-readable)选项将大小转换为更易读的格式(KB、MB、GB等,以1024为进制)。

$ ls -lh test.txt
-rw-r--r-- 1 user user 1.0K Oct 1 10:00 test.txt

若需精确到小数位,可结合--block-size选项指定单位,如ls -lh --block-size=1000(以1000为进制,显示为KB/MB/GB的十进制格式)。

按大小排序:ls -lS

-S选项根据文件大小降序排列文件,便于快速定位大文件:

$ ls -lS
-rw-r--r-- 1 user user 10M Oct 1 10:05 large_file.zip
-rw-r--r-- 1 user user 1.0K Oct 1 10:00 test.txt

结合-r选项可升序排列(ls -lrS)。

du命令:统计文件及目录的磁盘占用空间

du(disk usage)用于估算文件或目录占用的实际磁盘空间,与ls不同,du会考虑文件系统的块大小(默认4KB/块),因此可能显示比ls更大的值(尤其是小文件)。

linux如何查看文件的大小

查看目录总大小:du -sh

-s(summarize)仅显示汇总大小,-h以人类可读格式输出。

$ du -sh /var/log
15M    /var/log

此结果表示/var/log目录及其子文件共占用15MB磁盘空间。

递归查看子目录大小:du -h --max-depth

--max-depth限制递归深度,如查看/var/log下各子目录大小(深度为1):

$ du -h --max-depth=1 /var/log
1.2M    /var/log/apt
4.0K    /var/log/cron
10M    /var/log/journal

排除特定文件:du --exclude

通过--exclude选项排除匹配模式的文件,如排除.log文件:

$ du -sh --exclude="*.log" /var/log
12M    /var/log

stat命令:显示文件详细状态信息

stat用于查看文件的元数据,包括精确大小、权限、时间戳等,适合需要获取文件字节级精确值的场景。

输出文件大小:stat -c %s

-c选项自定义输出格式,%s表示文件大小(字节):

$ stat -c %s test.txt
1024

若需人类可读格式,可使用%h(如stat -c %h test.txt,需结合numfmt转换)。

显示文件系统信息:stat -f

-f选项输出文件系统相关统计,如总块数、可用块数及块大小(默认4KB):

linux如何查看文件的大小

$ stat -f /dev/sda1
  File: "/dev/sda1"
    ID: ...        Namelen: 255     Type: ext4
Block size: 4096       Fundamental block size: 4096

find命令:按大小条件查找文件

find是强大的文件查找工具,通过-size选项可筛选特定大小的文件,支持(大于)、(小于)、无符号(等于)及单位(b字节、kKB、MMB、GGB等)。

查找大于100MB的文件

$ find /home -type f -size +100M
/home/user/videos/large_video.mp4

查找小于1KB的文件(排除空文件)

$ find /var -type f -size -1k -size +0c

-size +0c确保文件大小大于0字节(c表示字节)。

按大小排序并显示详情

结合-execls命令,可对查找结果排序:

$ find / -type f -size +1G -exec ls -lh {} + | sort -k5 -hr

sort -k5 -hr按第5列(大小)降序排列(-h按数字排序,-r降序)。

命令对比与适用场景

命令 主要功能 常用选项 适用场景
ls 列出文件及属性(含大小) -l(长格式)、-h(人类可读)、-S(按大小排序) 快速查看单个/多个文件大小
du 估算文件/目录占用的磁盘空间 -s(汇总)、-h(人类可读)、--max-depth(目录深度) 分析目录空间占用、查找大目录
stat 显示文件详细状态信息 -c %s(精确大小)、-f(文件系统信息) 获取精确字节数、文件属性
find 查找符合特定条件的文件 -size(按大小筛选)、-type(文件类型) 批量查找特定大小的文件

相关问答FAQs

为什么用ls -ldu -h查看同一个文件时,显示的大小可能不同?
ls -l显示的是文件的实际内容大小(字节数),而du -h显示的是文件占用的磁盘块数(默认4KB/块),一个12字节的文件,ls -l显示12du -h可能显示4K(因为文件系统分配了1个4KB块存储该文件),对于目录,ls -l显示的是目录元数据大小(通常4096字节),而du -h显示的是目录下所有文件的总和,两者差异更明显。

如何查找系统中所有大于1GB的文件,并按大小降序排列?
使用find命令结合-sizeexecxargs排序:

find / -type f -size +1G -exec ls -lh {} + | sort -k5 -hr

解释:find / -type f -size +1G查找根目录下所有大于1GB的文件;-exec ls -lh {} +以人类可读格式显示文件详情;sort -k5 -hr按第5列(大小)降序排列(-h按数字排序,-r降序)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/31893.html

(0)
酷番叔酷番叔
上一篇 2025年9月28日 17:39
下一篇 2025年9月28日 17:55

相关推荐

  • 如何远程连接Linux系统?方法步骤与工具使用指南

    远程连接Linux系统是服务器管理、远程开发和运维工作的核心技能,通过不同方式可实现对Linux服务器的图形界面或命令行访问,以下是主流远程连接方法的详细步骤及注意事项,帮助高效完成远程操作,SSH远程连接(命令行方式)SSH(Secure Shell)是Linux远程管理的首选协议,通过加密传输保障数据安全……

    2025年8月29日
    19600
  • Linux教程,如何在系统中正确创建一个新文件?

    Linux作为一款广泛使用的开源操作系统,其文件系统是管理数据的核心,掌握在Linux中创建文件的方法是日常操作和系统管理的基础技能,无论是编写脚本、编辑配置文件还是存储数据,都需要通过不同方式创建文件,本文将详细介绍Linux中创建文件的多种方法,涵盖命令行工具、文本编辑器及脚本实现,帮助用户根据不同场景选择……

    2025年9月22日
    14500
  • 如何以管理员模式打开PowerShell?

    理解“进入Linux”的三种场景“进入Linux”通常指以下操作:物理设备直接操作:在已安装Linux的电脑上登录系统远程连接:通过网络访问Linux服务器虚拟机/容器环境:在现有操作系统中启动Linux环境物理设备直接登录(适用个人电脑)步骤详解:启动准备确保设备已安装Linux系统(如Ubuntu、Cent……

    2025年6月27日
    16600
  • Linux如何设置alias命令别名?

    在Linux系统中,alias(别名)是一个非常实用的功能,它允许用户为常用的复杂命令或命令组合设置简短易记的名称,从而提高命令行操作效率,ls -alF这样的命令可以简化为ll,减少重复输入和记忆负担,本文将详细介绍Linux中设置alias的方法,包括临时设置、永久配置、高级用法及注意事项,alias的基本……

    2025年8月30日
    17500
  • linux中如何获取时间

    在Linux系统中,获取时间是系统管理和应用开发中的基础操作,涉及系统时间、硬件时间、时区等多个概念,Linux通过多种命令和接口提供时间获取功能,涵盖命令行工具、系统调用和编程库,满足不同场景的需求,本文将详细介绍Linux中获取时间的常用方法及其应用场景,Linux时间管理基础Linux系统中的时间主要分为……

    2025年10月5日
    15500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信