Linux命令查看当前目录文件大小,实用指南与技巧

LEAF
Linux查看当前目录文件大小,常用ls -lh显示文件详细信息及人类可读大小(如KB、MB);du -sh快速统计目录总容量,--max-depth=1可限制子目录深度,交互式工具ncdu支持实时浏览和删除文件,适合深入分析,技巧上,可通过ls -lS | head -n 10按大小排序查看最大文件,或用find . -type f -exec du -sh {} +筛选特定文件类型,掌握这些命令,能高效管理磁盘空间。

在Linux系统中,管理磁盘空间是日常运维和开发中常见的需求,查看当前目录下的文件大小,能帮助我们快速定位大文件、清理无用数据,或分析存储占用情况,本文将介绍几种常用命令,从基础到进阶,助你高效掌握文件大小查看技巧。

基础命令:ls——快速查看文件大小

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

ls -l:显示详细文件信息(含字节大小)

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

ls -l

输出示例:

-rw-r--r-- 1 user user 1024 Oct 20 10:30 test.txt
-rw-r--r-- 1 user user 2048 Oct 20 11:45 data.log
drwxr-xr-x 5 user user 4096 Oct 20 09:15 docs/

说明:

  • test.txt大小为1024字节,data.log为2048字节,docs/是目录(显示的是目录本身大小,而非内容总大小)。

ls -lh:人性化显示文件大小(自动转换单位)

-h(human-readable)选项会将文件大小转换为更易读的单位(K、M、G、T等),适合查看大文件。

ls -lh

输出示例:

-rw-r--r-- 1 user user 1.0K Oct 20 10:30 test.txt
-rw-r--r-- 1 user user 2.0M Oct 20 11:45 data.log
drwxr-xr-x 5 user user 4.0K Oct 20 09:15 docs/

说明:1024字节显示为0K2048字节显示为0K(此处示例中data.log实际为2048字节,若为2MB则会显示为0M)。

ls -lS:按文件大小排序(从大到小)

-S选项会根据文件大小降序排列,方便快速定位最大的文件。

ls -lS

输出示例:

-rw-r--r-- 1 user user 10M Oct 20 12:00 large_file.zip
-rw-r--r-- 1 user user 2.0M Oct 20 11:45 data.log
-rw-r--r-- 1 user user 1.0K Oct 20 10:30 test.txt

ls -lsh:结合大小排序与人性化显示

-s(size)选项显示文件块大小,搭配-h-l,可按大小排序并人性化显示:

ls -lsh

输出示例:

10M -rw-r--r-- 1 user user 10M Oct 20 12:00 large_file.zip
2.0M -rw-r--r-- 1 user user 2.0M Oct 20 11:45 data.log
1.0K -rw-r--r-- 1 user user 1.0K Oct 20 10:30 test.txt

进阶命令:du——统计目录及文件占用空间

du(disk usage)专门用于统计文件或目录的磁盘占用空间,与ls不同,du会递归计算目录内容的大小(默认单位也是字节)。

du -sh:显示当前目录总大小

-s(summarize)仅显示总计大小,-h人性化单位:

du -sh

输出示例:

15M    .

说明:当前目录(含所有子目录和文件)共占用15MB磁盘空间。

du -ah:显示所有文件及目录大小

-a(all)显示所有文件(包括隐藏文件)和目录的大小,搭配-h更直观:

du -ah

输出示例:

0K   ./docs/backup
1.0K   ./docs/report.txt
8.0K   ./docs/
4.0K   ./temp/.hidden_file
2.0M   ./data.log
15M    .

du -h --max-depth=1:限制目录层级(仅查看当前目录下一级)

--max-depth=1只统计当前目录直接子目录/文件的大小,避免递归输出,适合快速定位大目录:

du -h --max-depth=1

输出示例:

0K   ./docs
2.0M   ./data.log
1.0K   ./test.txt
15M    .

精准筛选:find——按大小查找文件

如果需要查找特定大小范围的文件(如“大于100MB的文件”),find命令是最佳选择。

查找大于指定大小的文件

语法:find . -type f -size +[大小][单位]

  • 大于
  • 小于
  • 单位:k(KB)、M(MB)、G(GB)

示例:查找当前目录下大于100MB的文件

find . -type f -size +100M

查找小于指定大小的文件

示例:查找当前目录下小于10KB的文件

find . -type f -size -10k

查找指定大小的文件(精确到MB)

示例:查找大小恰好为50MB的文件

find . -type f -size 50M

组合技巧:管道与排序,高效分析大文件

通过管道符结合其他命令(如sorthead),可以进一步优化分析流程。

查看当前下最大的10个文件

du -ah . | sort -hr | head -n 10

说明:

  • du -ah .:统计当前目录所有文件/目录大小;
  • sort -hr:按大小降序排序(-h支持单位排序,-r降序);
  • head -n 10:取前10行。

查找大于10MB的文件并按大小排序

find . -type f -size +10M | xargs du -sh | sort -hr

说明:

  • find筛选出大于10MB的文件;
  • xargs du -sh:对筛选结果统计大小;
  • sort -hr:降序排序。

注意事项:lsdu的区别

  1. 统计范围不同

    • ls仅显示文件本身的“内容大小”(如文件存储的字节数);
    • du显示文件/目录的“磁盘占用空间”(含元数据、碎片等,通常略大于文件实际大小)。
  2. 目录处理不同

    • ls显示目录本身的大小(通常是4KB或16KB,即inode占用空间);
    • du -sh会递归计算目录内所有文件的总大小。
  3. 符号链接

    • ls默认显示链接文件指向的目标文件大小;
    • du默认跟随链接(显示目标文件大小),若需显示链接本身大小,需加-l选项。

场景化选择命令

需求场景 推荐命令
快速查看单个文件大小 ls -lh 文件名
查看当前目录总大小 du -sh
按大小排序找大文件 ls -lSdu -sh | sort -hr
查找特定大小范围的文件 find . -type f -size +/-[单位]
分析目录层级占用情况 du -h --max-depth=1

掌握这些命令,能让你在Linux系统中高效管理文件大小,无论是日常清理还是运维分析,都能得心应手,建议结合实际场景多加练习,逐步熟悉命令的灵活运用。

文章版权声明:除非注明,否则均为XMSDN - MSDN原版系统镜像 | 纯净ISO系统下载原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码