mac命令行如何查看文件夹大小?

在 macOS 系统中,通过命令行查看文件夹大小是高效管理磁盘空间的重要方式,相较于图形界面逐级点击查看,命令行操作能快速定位大文件或占用空间异常的目录,尤其适合处理深层嵌套的文件夹结构,本文将详细介绍使用 du(disk usage)、ncdu(NCurses Disk Usage)等命令查看文件夹大小的方法,并结合实例说明参数搭配与结果解读,同时提供通过管道、脚本等进阶技巧实现批量分析,最后附常见问题解答帮助用户解决实际操作中的困惑。

mac 命令行 查看文件夹大小
(图片来源网络,侵删)

基础命令:du 查看文件夹大小

du 是 macOS 系统内置的磁盘使用情况分析工具,通过不同参数组合可灵活输出文件夹及其子文件夹的占用空间。

基本语法与常用参数

du 命令的基本语法为 du [选项] [目录],常用参数包括:

  • -h:以人类可读格式显示(如 K、M、G),默认以字节为单位;
  • -s--summarize:仅显示总计大小,不递归显示子文件夹;
  • -d--max-depth:指定递归深度,如 -d 1 只显示当前目录下一级文件夹的大小;
  • -a--all:显示所有文件的大小,而仅文件夹;
  • -c--total:显示总计大小,常与 -s 搭配使用;
  • --exclude:排除特定文件或文件夹,如 --exclude "*.log" 忽略所有日志文件。

实例操作

  • 查看当前目录总大小

    du -sh

    输出示例:2G .,表示当前目录占用 1.2GB 空间。

    mac 命令行 查看文件夹大小
    (图片来源网络,侵删)
  • 查看指定目录下一级文件夹大小

    du -d 1 /Users/username/Documents

    输出示例:

    4K    /Users/username/Documents/notes
    256M  /Users/username/Documents/photos
    1.1G  /Users/username/Documents/videos

    -d 1 限制了递归深度,仅显示 Documents 目录下的直接子文件夹大小。

  • 排除特定文件后查看目录大小
    若目录中有大量缓存文件(如 .cache 文件夹),可通过 --exclude 排除:

    du -sh --exclude ".cache" /Users/username/Apps
  • 统计多个目录的总大小

    du -sh /Users/username/Documents /Users/username/Downloads /Users/username/Pictures

进阶工具:ncdu 交互式磁盘分析

ncdu 是基于 ncurses 的交互式磁盘使用分析工具,支持通过键盘导航、删除文件,实时查看目录结构,适合深度排查大文件。

安装 ncdu

macOS 默认未安装 ncdu,可通过 Homebrew 安装:

brew install ncdu

使用方法

  • 扫描当前目录

    ncdu

    启动后界面会显示当前目录下各子文件夹及文件的大小,按方向键上下切换,按 Enter 进入子目录,按 Backspace 返回上级目录。

  • 扫描指定目录

    ncdu /Users/username/Library
  • 交互操作

    • d:删除当前选中文件/文件夹(需二次确认);
    • c:按文件大小排序(默认按名称排序);
    • g:按文件夹大小排序;
    • 按 :显示帮助菜单。

输出示例

ncdu 1.15.1 ~ Use the arrow keys to navigate, press ? for help
--- /Users/username/Library -------------------------------------------------
   96.2 GiB [##########] /.cache
   42.7 GiB [#####     ] /Application Support
   15.3 GiB [##        ] /Mail
    2.1 GiB [#         ] /Logs
    512.0 MiB [          ] /Caches
    128.0 MiB [          ] /Preferences

通过可视化条形图可直观看出 .cache 目录占用空间最大,适合优先清理。

管道与脚本:批量分析文件夹大小

当需要批量分析多个目录或按条件筛选时,可结合 du 与管道、awksort 等命令实现高效处理。

按大小排序并显示前 10 大文件夹

du -h /Users/username | sort -hr | head -n 10
  • sort -hr:按人类可读格式的数值降序排序(h 表示 human-readable,r 表示 reverse);
  • head -n 10:取前 10 行结果。

查找超过 1GB 的文件夹

du -h /Users/username | grep "G" | sort -hr

通过 grep "G" 筛选出带 G(GB 单位)的行,再降序排列。

使用 awk 计算目录总大小

若需统计所有 .app 应用程序的总大小:

du -h /Applications | awk '$0 ~ /\.app$/ {sum += $1} END {print "Total size:", sum}'
  • awk '$0 ~ /\.app$/:匹配包含 .app 的行;
  • {sum += $1}:累加文件大小(需确保 $1 为数值,若含单位需先处理);
  • END {print}:输出累加结果。

常见问题解答(FAQs)

问题 1:为什么 du -sh 显示的文件夹大小与 Finder 显示不一致?

解答
不一致的原因主要有两点:

  1. 计算方式差异du 默认计算文件夹内所有文件的实际占用空间(包括磁盘块对齐的冗余空间),而 Finder 可能显示“逻辑大小”(即文件实际大小,未考虑磁盘块),一个 1KB 的文件在磁盘上可能占用 4KB(按 4KB 块对齐),du 会显示 4KB,而 Finder 可能显示 1KB。
  2. 隐藏文件与元数据du 默认包含隐藏文件(如 .DS_Store.git)和文件元数据(如扩展属性、资源分叉),而 Finder 默认忽略部分隐藏文件,可通过 du -sh --exclude=".*" 排除隐藏文件,或使用 xattr -l 查看文件的扩展属性。

问题 2:如何快速定位并删除大文件?

解答
结合 dufind 命令可快速定位大文件,再通过 rm 删除(需谨慎操作,避免误删系统文件),步骤如下:

  1. 查找超过 100MB 的文件

    find /Users/username -type f -size +100M
    • -type f:仅查找文件;
    • -size +100M:查找大小超过 100MB 的文件。
  2. 按大小排序并显示路径

    find /Users/username -type f -exec ls -lh {} + | sort -k5 -hr | head -n 10
    • ls -lh:显示文件详细信息(含大小);
    • sort -k5 -hr:按第 5 列(大小)降序排序。
  3. 删除指定文件(以 old_video.mp4 为例):

    rm /Users/username/Downloads/old_video.mp4

    注意:删除前建议通过 ls -lh 确认文件路径,或使用 mv 移至回收站(如 mv ~/.Trash/)。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/433966.html<

(0)
运维的头像运维
上一篇2025-10-30 10:38
下一篇 2025-10-30 10:42

相关推荐

  • Windows命令查看文件有哪些?

    在Windows操作系统中,通过命令提示符(CMD)或PowerShell等命令行工具查看文件是高效管理文件系统的重要方式,这些命令不仅能快速浏览目录结构,还能结合参数实现更复杂的文件操作需求,以下将详细介绍常用的文件查看命令及其使用方法,包括基础命令、参数选项以及实际应用场景,最基础的文件查看命令是dir,该……

    2025-11-18
    0
  • 如何停止Tomcat命令行进程?

    停止Tomcat服务器是日常管理和维护工作中常见的操作,无论是为了更新部署、释放资源还是解决服务异常,掌握正确的停止方法至关重要,Tomcat作为广泛使用的Java Web应用服务器,提供了多种停止方式,每种方式适用于不同的场景和需求,本文将详细介绍通过命令行停止Tomcat的各种方法、注意事项以及相关操作细节……

    2025-11-15
    0
  • Linux查看当前目录命令有哪些?

    在Linux操作系统中,查看当前所在目录是日常操作中的基础需求之一,无论是新手用户还是经验丰富的开发者,都需要频繁使用相关命令来确认工作路径,Linux提供了多种命令来实现这一功能,每种命令都有其独特的用法和适用场景,本文将详细介绍这些命令的使用方法、参数选项以及实际应用场景,帮助用户全面掌握Linux查看当前……

    2025-11-15
    0
  • 如何正确进入目录命令?

    进入到目录命令是Linux和Unix-like操作系统中非常基础且重要的操作,它允许用户在文件系统中快速切换工作目录,从而高效地管理文件和执行命令,在命令行界面中,理解并熟练使用进入目录的命令是每个用户必备的技能,无论是初学者还是资深开发者,都需要掌握其核心用法和常见技巧,本文将详细讲解进入目录命令的使用方法……

    2025-11-14
    0
  • 显示文件信息命令有哪些?

    在Linux和Unix-like操作系统中,显示文件信息是日常管理和系统维护中非常基础且重要的操作,通过特定的命令,用户可以获取文件的类型、权限、所有者、大小、修改时间等详细信息,从而进行文件操作、权限管理、磁盘空间监控等任务,以下是几种常用的显示文件信息命令的详细说明及其使用方法,ls命令:列出文件及目录信息……

    2025-11-09
    0

发表回复

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