Gdu 完全指南:Go 编写的高性能磁盘用量分析器安装、配置与实战
CLI开发工具【免费下载链接】gduFast disk usage analyzer with console interface written in Go项目地址https://gitcode.com/gh_mirrors/gd/gdu点击查看免费下载Gdugo DiskUsage是一款使用 Go 语言编写的高性能磁盘用量分析器提供交互式终端界面TUI、非交互式文本输出、JSON 导出以及浏览器 Web UI 四种使用形态。本文以官方 README.md 为主线结合仓库源码如 cmd/gdu/main.go、cmd/gdu/app/app.go、pkg/analyze逐项拆解其命令行参数、交互快捷键、配置文件的全部选项、三种运行模式的差异与底层实现读完即可在日常运维和脚本中直接上手并理解其内部原理。项目定位与设计目标Gdu 面向的主要场景是 SSD 磁盘其默认的并行分析器可以充分利用多核并发读取目录树在 HDD旋转机械盘上同样可以工作只是性能提升幅度不如 SSD 明显。项目源码中对这一点的描述见 cmd/gdu/main.go。仓库按 Go 工程惯例组织核心模块位于cmd/gdu/命令行入口与全局应用装配flag 定义、配置加载、UI 选择pkg/analyze/磁盘扫描分析器并行、顺序、顶层目录聚合、数据库存储等tui/、stdout/、report/、webui/四种输出界面internal/common/界面与分析器共享的公共抽象。安装方式下载预编译二进制前往项目的 releases 页面下载对应系统的二进制包或使用 curl 一键安装到/usr/bin/gducurl -L https://github.com/dundee/gdu/releases/latest/download/gdu_linux_amd64.tgz | tar xz chmod x gdu_linux_amd64 mv gdu_linux_amd64 /usr/bin/gdu其他安装方式源码编译、包管理器、各发行版打包状态等见 INSTALL.md。通过 Docker 运行docker run --rm --init --interactive --tty --privileged --volume /:/mnt/root ghcr.io/dundee/gdu /mnt/root--privileged与--volume /:/mnt/root使容器能够读取宿主机的完整目录树/mnt/root即宿主根目录的挂载点。从源码构建仓库提供完整的 Makefile 构建体系make build使用-buildmodepie -trimpath -pgodefault.pgo等优化参数生成二进制make build-all交叉编译 Linux/FreeBSD/NetBSD/OpenBSD/macOS/Windows/Android 各平台产物make man由 gdu.1.md 生成 man 手册页。命令行完整参数详解Gdu 的命令行由 cmd/gdu/main.go 中的 cobra 框架注册。调用形式为gdu [flags] [directory_to_scan...]下面按用途分组完整列出所有参数标注与源码注册一致的功能说明扫描控制参数说明directory_to_scan...待扫描目录可传多个不传时默认扫描当前目录.见 cmd/gdu/app/app.go-m, --max-cores int设置 Gdu 使用的最大 CPU 核数默认值为本机可用核数runtime.NumCPU()超出范围时忽略--sequential使用顺序扫描适用于旋转 HDD-x, --no-cross不跨文件系统边界扫描-L, --follow-symlinks跟随文件符号链接显示链接指向文件的大小不跟随目录链接-A, --show-annexed-size对 git-annex 文件使用其表观大小当文件未本地化时真实占用为零--archive-browsing允许浏览 zip/jar/tar 压缩包支持 tar、tar.gz、tar.bz2、tar.xz--collapse-path折叠单子目录链压缩显示层级--depth int非交互模式下按指定深度展示目录结构0 表示忽略该标志同时限制压缩包内条目深度忽略与过滤参数说明-i, --ignore-dirs strings要忽略的路径逗号分隔可为绝对路径或相对当前目录的相对路径默认值为[/proc,/dev,/sys,/run]-I, --ignore-dirs-pattern strings要忽略的路径正则模式逗号分隔-X, --ignore-from string从文件读取要忽略的路径模式-G, --ignore-from-gitignore string从 gitignore 风格模式文件读取要忽略的目录-H, --no-hidden忽略隐藏目录以点开头的目录-T, --type strings仅包含指定类型的文件如--type yaml,json-E, --exclude-type strings排除指定类型的文件如--exclude-type yaml,json输出格式与展示参数说明-a, --show-apparent-size显示表观大小而非磁盘占用-B, --show-relative-size显示相对大小比例-C, --show-item-count显示目录中的条目数-M, --show-mtime显示目录内条目的最新 mtime-k, --show-in-kib非交互模式下以 KiB配合--si时 kB为单位显示--si使用十进制 SI 前缀kB/MB/GB而非二进制前缀KiB/MiB/GiB--no-prefix非交互模式下以原始数字显示大小不加任何前缀-c, --no-color不使用彩色输出-u, --no-unicode不使用 Unicode 符号大小条--reverse-sort非交互模式下反转排序从小到大-s, --summarize非交互模式下仅显示总计-t, --top int非交互模式下仅显示最大的 X 个文件--show-symlink-target在文件列表中显示符号链接目标name - target-p, --no-progress非交互模式下不显示进度-n, --non-interactive强制不进入交互模式--interactive即使输出不是 TTY 也强制进入交互模式时间过滤参数说明--max-age string仅包含 mtime 不早于指定时长的文件如7d、2h30m、1y2mo--min-age string仅包含 mtime 至少为指定时长的文件如30d、1w--since string包含 mtime ≥ WHEN 的文件。WHEN 接受 RFC3339 时间戳如2025-08-11T01:00:00-07:00或纯日期YYYY-MM-DD按日历日比较包含整天--until string包含 mtime ≤ WHEN 的文件同样接受 RFC3339 或纯日期时间过滤器在 cmd/gdu/app/app.go 中通过timefilter.NewTimeFilter构建底层实现在 pkg/timefilter/timefilter.go。数据导入导出与持久化参数说明-o, --output-file string将所有信息导出为 JSON 文件-表示标准输出--output-attrs string仅导出选中的 JSON 属性可选name,asize,dsize,items,mtime,notreg,ino-f, --input-file string从 JSON 文件导入分析结果-D, --db string将分析存入数据库*.sqlite用 SQLite*.badger用 BadgerDB-r, --read-from-storage使用已有数据库而非重新扫描界面与操作约束参数说明--mouse启用鼠标--no-delete禁止删除操作--no-view-file禁止查看文件内容--no-spawn-shell禁止打开 shell--no-confirm-quit长扫描结束后退出时不询问确认--ctrl-c-quits扫描期间按 CtrlC 直接退出而非停止扫描并保留结果Esc 始终是停止扫描--trash-command string使用自定义命令移动文件到回收站如trash-put --trash-dir ~/mytrash替代内置回收站实现--show-disks, -d显示所有挂载的磁盘--web运行 Web UI替代终端界面提供浏览器界面--web-listen stringWeb UI 监听地址默认 localhost 随机空闲端口--web-open启动时在默认浏览器打开 Web UI默认 true辅助参数参数说明--config-file string从文件读取配置默认$HOME/.gdu.yaml--write-config将当前配置写入文件默认$HOME/.gdu.yaml--enable-profiling采集性能剖析数据通过http://localhost:6060/debug/pprof/提供-l, --log-file string日志文件路径默认/dev/nullWindows 上默认为nul见 cmd/gdu/main.go-v, --version打印版本信息-h, --help帮助需要注意的参数冲突校验在 cmd/gdu/app/app.go--no-prefix与--si不能同时使用--interactive与--non-interactive不能同时使用--output-attrs必须搭配--output-file使用。交互模式基本快捷键交互模式下TUI以下按键立即生效完整列表见帮助弹窗按?打开按键作用↑或k光标上移↓或j光标下移→/Enter/l进入高亮目录←/h返回父目录d删除选中的文件或目录D将选中的文件或目录移入回收站e清空选中的目录n按名称排序s按大小排序c显示/隐藏条目数?显示帮助弹窗扫描期间按Esc或CtrlC可停止调度新工作并保留已扫描结果再次按CtrlC退出 Gdu。若希望第一次CtrlC就直接退出使用--ctrl-c-quitsEsc停止扫描的行为不受影响。这一取消机制在 pkg/analyze/analyzer.go 中以atomic.Bool实现。实战示例汇总以下命令覆盖日常高频用法完整列表见 README.mdgdu # 分析当前目录 gdu -a # 显示表观大小而非磁盘占用 gdu --no-delete # 禁止写操作 gdu --no-view-file # 禁止查看文件内容 gdu --trash-command trash-put --trash-dir ~/mytrash # D 键使用自定义回收站命令 gdu --trash-command mv -f $1 ~/mytrash/ # 用 mv 移动文件到回收站 gdu some_dir_to_analyze # 分析指定目录 gdu dir_a dir_b dir_c # 同时分析多个目录 gdu -d # 显示所有已挂载磁盘 gdu -l ./gdu.log some_dir # 将错误写入日志文件 gdu -i /sys,/proc / # 忽略某些路径 gdu -I .*[abc] # 按正则模式忽略路径 gdu -X ignore_file / # 从文件读取忽略路径模式 gdu -G .gitignore / # 按 gitignore 风格模式忽略目录 gdu -c / # 仅使用白/灰/黑三色 gdu -n / # 仅打印统计不进入交互模式 gdu --interactive / | tee out.txt # stdout 被管道时强制交互模式 gdu -p / # 不显示进度适合脚本输出 gdu -ps /some/dir # 仅显示指定目录的总用量 gdu -t 10 / # 显示最大的 10 个文件 gdu --reverse-sort -n / # 非交互模式下从小到大排序 gdu / file # 写入统计到文件不进入交互模式 gdu -o- / | gzip -c report.json.gz # 将全部信息写入 JSON 供后续分析 zcat report.json.gz | gdu -f- # 从文件读取分析结果 gdu --dbtmp.badger / # 使用持久化键值存储保存分析数据 gdu --dbtmp.db / # 使用持久化 SQLite 存储保存分析数据 gdu -r / # 从持久化键值存储读取分析结果 gdu --web / # 分析并在浏览器中浏览结果 gdu --web --web-listen localhost:8080 / # 在固定地址提供 Web UI gdu --web --web-openfalse / # 打印 URL 但不自动打开浏览器多目录扫描与虚拟顶层目录当命令行传入多个目录时它们会被依次扫描并统一呈现在一个名为(multiple)的虚拟顶层目录下从而可以像普通兄弟节点一样比较与排序gdu ~/projects/alpha ~/projects/beta ~/projects/gamma目录按绝对路径列出因此即使基名相同也能区分每个目录保留其真实路径进入其中后重新扫描、删除、打开 shell 等操作均照常工作。该虚拟顶层目录的实现位于 pkg/analyze/virtualroot.goVirtualRootName (multiple)被刻意设计成不是合法绝对路径从而避免任何解析回文件系统的操作重扫、删除、spawn shell、change cwd误作用于虚拟节点本身每个根目录仍保留自己的BasePath其GetPath返回真实绝对路径。根目录在虚拟节点下的显示名称也是其绝对路径见ItemDisplayNamepkg/analyze/virtualroot.go。虚拟顶层目录在磁盘上没有对应物因此在其显示期间需要真实路径的操作不可用--change-cwd、打开 shell、向上浏览父目录--browse-parent-dirs、导出 JSON。对虚拟目录重新扫描会递归重扫其下所有目录。另外两个限制值得注意实现在 cmd/gdu/app/app.go 的resolvePaths与checkMultiPathSupport互相嵌套的目录会被拒绝同时扫描一个目录及其子目录会把嵌套部分重复计数程序直接报错导出-o与数据库存储--db仅接受单个目录。三种运行模式Gdu 共有三种模式交互模式默认、非交互模式与导出模式。模式选择逻辑见 cmd/gdu/app/app.go 与createUIcmd/gdu/app/app.go。交互模式默认终端 UI 基于 tview/tcell 构建。当 stdout 检测到 TTY 时默认进入可用--interactive强制交互模式。使用go-isatty判断 TTY。非交互模式当未检测到 TTY例如输出被管道到文件或脚本时自动进入非交互模式也可用-n显式指定。核心行为见 README.md不使用--top和--depth时Gdu 使用内存高效的分析器只跟踪顶层目录的汇总统计内存占用与目录树大小无关、保持恒定使用--top或--depth时与交互模式一样会在内存中构建完整目录树。内存高效分析器的实现即TopDir/SimpleDir类型pkg/analyze/top_dir.go它只以原子计数器累加每个顶层目录的 size、usage、itemCount不保存子目录节点。导出模式-o将全部用量数据导出为 JSON之后可用-f重新导入。要点默认导出全部属性目录始终携带asize、dsize、items汇总统计以便导入时保留--output-attrsasize,dsize只导出选定属性name始终包含。可选属性为asize、dsize、items、mtime、notreg、ino导出 JSON 始终保留原始字节数值。其他全局行为环境变量终端输出遵循BLOCK_SIZE与BLOCKSIZEBLOCK_SIZE优先两者都接受 GNU coreutils 的块大小取值如1K、kB、human-readable、si显式的大小格式 flag 优先于环境变量导出的 JSON 始终是原始字节值硬链接只计数一次。Web UI 模式运行gdu --web /some/dir即可用浏览器界面替代终端 UI。Gdu 扫描目录、打印 URL并默认在默认浏览器中打开。界面提供当前目录内容的动态环形图donut chart与可排序表格含大小条面包屑导航、磁盘占用/表观大小切换全窗口树状图treemap可探索完整嵌套子树选择文件或目录双击目录进入过小的细节折叠进最近的可视父目录扫描进度通过 Server-Sent Events 实时推送前端实现在 webui/frontend/src服务端轮询间隔见 webui/webui.go。树状图中按键O在系统文件管理器中显示选中项D或Delete确认后永久删除?显示快捷键。环形图视图中表格每行有独立的 reveal 与 delete 按钮删除对话框可在当前浏览器会话内抑制后续确认选择 permanent 后单次点击即删。--no-delete与过滤扫描的删除限制同样作用于 Web UI--no-delete下 reveal 仍可用它不修改扫描数据。若要刻意允许过滤状态下删除设置GDU_ALLOW_DELETE_WITH_FILTER1——注意显示树可能遗漏磁盘上仍然存在的文件。网络与安全详见 README.md默认绑定localhost随机空闲端口可用--web-listen或配置web.listen固定地址前端资源已内嵌进二进制无需额外文件或网络访问浏览是只读且无需认证任何能访问到该端口的人都能看到文件名与大小因此默认保持localhost绑定Reveal 与删除需要更高权限请求必须同时来自 loopback 地址并携带随机 token每次服务运行新生成绝不通过 API 下发URL 会打印到进程终端并传给浏览器启动器Linux 上冷启动的浏览器可能将该 URL 保留在全局可读的命令行中自定义浏览器命令在任何平台都可能有此问题多用户机器上建议--web-openfalse并在已运行的浏览器中打开打印的 URL其他源或标签页即使能访问端口也会被拒绝绑定非 loopback 地址会使扫描详情暴露给网络内其他主机并打印警告。文件标志File Flags交互界面中文件与目录名前缀的单字符标志含义标志含义!读取该目录时发生错误.读取子目录时发生错误大小可能不准确文件是符号链接或 socket符号链接可显示为name - target类似ls -lH同一文件已被计数硬链接e目录为空这些标志在分析器中生成目录读取失败置!、空目录置e见 pkg/analyze/parallel.go 的getDirFlag符号链接/套接字置getFlagpkg/analyze/parallel.go。YAML 配置文件完全解析Gdu 可读取也可写入YAML 配置文件。默认检查$HOME/.config/gdu/gdu.yaml与$HOME/.gdu.yaml两个路径配置路径探测逻辑见 cmd/gdu/main.go先查~/.config/gdu/gdu.yaml不存在则回退到~/.gdu.yaml。完整配置项列表见 configuration.md。配置加载顺序cmd/gdu/main.go先加载系统级配置/etc/gdu.yamlWindows/Plan9 忽略再加载用户配置并覆盖系统配置。基础示例# 永久启用灰阶配色 echo no-color: true ~/.gdu.yaml # 设置默认排序by: name // size, name, itemCount, mtime # order: desc // asc echo -e sorting:\n by: name\n order: desc ~/.gdu.yaml # 浏览目录时设置 CWD 环境变量 echo change-cwd: true ~/.gdu.yaml # Web UI 配置绑定地址与浏览器行为 echo -e web:\n listen: \localhost:8080\\n open-browser: true\n browser: \\ ~/.gdu.yaml # 将当前配置写入文件生成含全部默认值的 $HOME/.gdu.yaml gdu --write-config--write-config在 cmd/gdu/main.go 中实现将Flags结构体经 yaml 序列化后写入权限0600。忽略规则详解ignore-dir-patterns、ignore-from-file、ignore-from-gitignore三者的模式均可为绝对路径或相对当前目录。ignore-from-gitignore采用 gitignore 风格configuration.md不带/的名称匹配任意深度如node_modules忽略树中所有同名目录尾部/标记目录、开头/锚定到被扫描目录如/build只忽略扫描顶层的build而非src/build*不跨分隔符**可以/同时匹配两种路径分隔符故 Unix 写法也匹配 Windows 路径尾部/**等于目录本身build/**build因为 gdu 按整目录剪枝*.class这类文件模式会被接受但无效果gdu 只剪枝目录。两类模式会直接报错而非跳过否则会静默少报磁盘用量否定模式!开头gdu 一次性剪掉整个目录不会深入被忽略目录因而无法取消忽略其内部内容匹配所有目录的模式*、**、/**gitignore 合法但会隐藏整个扫描。所有模式源叠加生效同时给出ignore-dir-patterns、ignore-from-file、ignore-from-gitignore时目录命中任意一个即被忽略ignore-dirs中的路径额外叠加。回收站命令trash-command契约trash-command由D键触发替代内置的 FreeDesktop 回收站实现适用于回收站到非默认位置或在 macOS 等无内置回收站的系统上使用第三方回收工具。命令契约详见 configuration.md命令由/bin/sh求值条目绝对路径作为参数追加因此支持变量展开等 shell 语法目的地参数在最后的命令如mv需显式用$1引用路径避免追加位置错误trash-command: mv -f $1 ~/mytrash/注意目的地尾随/否则目标目录不存在时mv会改名覆盖路径以位置参数传递条目名永不被解释为 shell 语法除非命令自身用$1/$/$*引用否则路径会追加到命令末尾——追加要求命令能以参数结尾gio trash --可以some-command;不行绝对路径同时导出为环境变量GDU_TRASH_PATH命令不得交互它没有终端UI 执行期间保持运行配合delete-in-background甚至可能由后台 worker 执行命令失败时退出状态与 stderr 显示在错误弹窗中条目保留在列表中命令成功但条目仍在磁盘上也保留在列表仅刷新选中项no-delete无论该选项如何都禁用D键Web UI 的 Move to Trash 动作同样使用该命令Windows 不支持没有可求值命令的 POSIX shell。样式Styling配置终端配色方案有大量可调项。部分 gdu 原语如基础文本会自适应不同配色方案但选中/高亮行不会。默认外观不满足时可在配置文件中覆盖例如style: selected-row: text-color: black background-color: #ff0000 marked: text-color: white background-color: #6600ccStyle结构体定义于 cmd/gdu/app/app.go可配置项包括footertext/background/number 颜色、headertext/background 颜色及hidden、result-rownumber-color、directory-color、progress-modal.current-item-path-max-len进度条当前项路径最大长度超出以/.../缩短、use-old-size-bar无 Unicode 符号的大小条、show-bar-percentage大小条旁显示数字百分比如61.4%、show-item-count-bar条目数旁按比例绘制条需配合show-item-count或c键开启的条目数列。这些选项通过 cmd/gdu/app/app.go 的getOptions装配为 tview/tcell 配置。sorting键支持byname/size/itemCount/mtime与orderasc/desc。后台与并行删除实验特性Gdu 可在后台删除条目从而不阻塞 UI 继续工作echo delete-in-background: true ~/.gdu.yaml目录条目还可并行删除可能提升删除速度echo delete-in-parallel: true ~/.gdu.yaml将分析数据保存到数据库Gdu 可把分析数据存入数据库文件而非仅保存在内存便于之后保存与重新加载分析结果。SQLite 与 BadgerDB 均受支持gdu --db analysis.sqlite / # 保存分析数据到 SQLite 数据库 gdu --db analysis.badger / # 保存到 BadgerDB gdu -r --db analysis.sqlite / # 读取已保存数据不再重新分析实现上Gdu 依据扩展名选择分析器cmd/gdu/app/app.go.badger使用analyze.CreateStoredAnalyzer其余按 SQLite 处理analyze.CreateSqliteAnalyzer重新扫描前会先删除已存在的数据库文件。对应源码为 pkg/analyze/stored.go 与 pkg/analyze/sqlite.go。README 的基准测试显示数据库模式显著慢于内存模式详见下文适合扫描一次、多次查询的场景而非频繁交互。源码级原理并行与顺序分析器并行分析器默认ParallelAnalyzerpkg/analyze/parallel.go通过信号量concurrencyLimit限制并发数2 * GOMAXPROCS(0)见 pkg/analyze/parallel.go每个子目录以 goroutine 调度扫描父目录聚合子目录结果addSubDir配合WaitGroup等待全部完成。这正是 SSD 上性能优异的根源IO 并发充分、CPU 并行聚合。取消扫描通过IsCancelled()在每个文件/目录上检查pkg/analyze/parallel.go。顺序分析器SequentialAnalyzerpkg/analyze/sequential.go以深度优先递归遍历无并发适合旋转 HDD机械盘随机寻道并发反而变慢。两者共用BaseAnalyzerpkg/analyze/analyzer.go的进度上报机制每 50ms ticker 通过 channel 推送当前条目名、条目数、总用量GetCurrentDir返回可独立浏览的快照允许扫描进行中预览部分结果。运行测试make install-dev-dependencies make testtest目标调用gotestsumcheck目标还包含 lint 与前端测试见 Makefile覆盖率可用make coverage含-race生成前端测试在webui/frontend下执行npm ci npm test。性能剖析Profiling设置--enable-profiling标志后Gdu 通过内嵌 HTTP 服务器在http://localhost:6060/debug/pprof/提供剖析数据go tool pprof -web http://localhost:6060/debug/pprof/heap上述命令将堆剖析以 SVG 图片形式在浏览器中打开。runAction中的注册逻辑见 cmd/gdu/app/app.go。仓库 Makefile 还提供了heap-profile、profile、trace、pgo等配套目标后者用于生成default.pgo的 PGO 采样。基准测试基准在 500 GB SSD 上的 90G 目录10 万目录、40 万文件上使用 hyperfine 执行命令复现见 Makefile 的benchmark目标。冷缓存通过sync; echo 3 | sudo tee /proc/sys/vm/drop_caches清空。冷缓存命令Mean [s]Min [s]Max [s]Relativediskus ~4.489 ± 0.0204.4494.5161.00gdu -npc ~4.716 ± 0.3424.1095.3371.05 ± 0.08GOMAXPROCS80 gdu -npc ~4.901 ± 1.9533.6279.9931.09 ± 0.44pdu ~5.969 ± 0.4925.5676.6401.33 ± 0.11dua ~6.030 ± 0.2495.8786.5971.34 ± 0.06dust -d0 ~6.181 ± 0.3116.0437.0531.38 ± 0.07gdu -npc --dbtmp.badger ~27.479 ± 3.01525.04832.7776.12 ± 0.67du -hs ~30.608 ± 0.22130.13630.7946.82 ± 0.06duc index ~32.897 ± 3.16831.52441.8657.33 ± 0.71ncdu -0 -o /dev/null ~33.163 ± 3.48231.47642.9797.39 ± 0.78gdu -npc --dbtmp.db ~44.989 ± 0.27044.62245.41410.02 ± 0.07热缓存命令Mean [ms]Min [ms]Max [ms]Relativediskus ~270.8 ± 8.1262.4291.51.00pdu ~299.1 ± 4.1292.1305.01.10 ± 0.04GOMAXPROCS100 gdu -npc ~459.1 ± 14.2446.7490.31.69 ± 0.07gdu -npc ~466.1 ± 27.9421.4495.31.72 ± 0.12dua ~590.6 ± 5.9580.5599.72.18 ± 0.07dust -d0 ~578.7 ± 3.7572.2586.32.14 ± 0.07du -hs ~1255.2 ± 7.41245.11273.44.63 ± 0.14duc index ~1450.5 ± 6.21440.61460.45.36 ± 0.16ncdu -0 -o /dev/null ~2222.4 ± 5.62215.62231.08.21 ± 0.25gdu -npc --dbtmp.db ~8246.7 ± 30.98181.98288.730.45 ± 0.92gdu -npc --dbtmp.badger ~15608.0 ± 3215.813960.322448.057.63 ± 12.00补充说明以上数据来自仓库 README 记录的特定机器与目录实测结果随硬件、文件系统与数据分布变化表中也可见数据库模式--db在持久化场景下相对内存模式的开销应据此评估使用场景。仓库docs/benchmarks/目录还保留了冷/热缓存、参数扫描GOMAXPROCS从 1 到 200等更细的基准文档。总结Gdu 以 Go 的并发能力为核心在 SSD 上提供接近最快的扫描速度同时用顶层聚合的非交互模式保证了恒定的内存占用配合 YAML 配置、SQLite/BadgerDB 持久化、JSON 导入导出与浏览器 Web UI覆盖了磁盘用量分析从交互排查到脚本化、自动化的完整链路。掌握本文的命令行参数、配置文件选项与三种模式的行为差异后即可在终端与流水线中高效地定位磁盘空间占用。赞分享CLI开发工具【免费下载链接】gduFast disk usage analyzer with console interface written in Go项目地址https://gitcode.com/gh_mirrors/gd/gdu点击查看免费下载相关推荐Gdu配置完全手册打造个性化的磁盘分析体验Gdu配置完全手册打造个性化的磁盘分析体验 GDUGo Disk Usage是一款基于Go语言开发的快速磁盘使用情况分析工具专为需要高效管理磁盘空间的用CLI开发工具ImDisk虚拟磁盘驱动器安装与配置完全指南ImDisk虚拟磁盘驱动器安装与配置完全指南 项目基础介绍及主要编程语言 ImDisk是一款专为Windows系统设计的虚拟磁盘驱动程序主要用于模拟硬盘分区、存储驱动开发虚拟化ImDisk虚拟磁盘驱动器安装与配置完全指南ImDisk虚拟磁盘驱动器安装与配置完全指南 项目基础介绍及主要编程语言 ImDisk是一款专为Windows系统设计的虚拟磁盘驱动程序由Olof Lager存储驱动开发虚拟化上一篇nb与自动驾驶知识积累和分享驾驶经验下一篇SuiteCRM报表图表终极指南10个数据可视化技巧提升业务洞察力创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考