用 du 命令可快速定位大文件:du -Sh . | sort -hr | head -n 10(Linux/macOS),Windows 需 WSL/Git Bash;注意排除构建目录、隐藏文件,确认用途后再删除。

用 du 命令在终端里直接定位大文件
VSCode 自身不提供按体积排序的文件浏览器,靠插件或图形界面筛选既慢又不准。真正快且可靠的方式,是在项目根目录下用终端跑 du —— 它是 Linux/macOS 原生命令,Windows 用户需启用 WSL 或安装 Git Bash。
执行这行命令就能列出当前文件夹下最大的前 10 个文件(不含子目录):
du -Sh . | sort -hr | head -n 10
说明:-S 表示“不递归统计子目录总和”,只看单个文件;-h 是人类可读单位(KB/MB/GB);sort -hr 按数值逆序排(r 是 reverse),避免字典序错乱(比如 10MB 排在 2MB 前面)。
- 别漏掉
.,否则du默认只统计当前目录本身,不进内容 - 如果看到大量
permission denied,加2>/dev/null过滤掉错误输出,不影响结果 - 注意
du -sh *看起来简洁,但会跳过隐藏文件(如.git、.next),容易漏掉真正的大户
识别并跳过构建产物和缓存目录
很多“最大文件”其实是构建残留(node_modules、dist、.next、build)或编辑器缓存(.vscode 下的 workspaceStorage),它们不该被手动删,而应走对应清理流程。
执行前先排除这些路径,避免误删或白忙活:
du -Sh --exclude=node_modules --exclude=dist --exclude=.next --exclude=build . | sort -hr | head -n 10
-
--exclude参数必须写在.之前,否则无效 - macOS 的
du不支持--exclude,得换用find组合:find . -type f ! -path "./node_modules/*" ! -path "./dist/*" -exec du -h {} + | sort -hr | head -n 10 - 常见陷阱:把
.git当成小目录忽略,其实它里面objects可能占几个 GB——但它属于 Git 内部结构,不能直接删文件,要用git gc或git repack
在 VSCode 里安全删除前确认文件用途
查出大文件后别急着 rm,先用 VSCode 打开看看内容类型和上下文。有些文件看似冗余,实则是日志、数据库快照、本地 mock 数据或未提交的导出产物。
- 右键点击文件 → “Reveal in Explorer” 快速定位路径,再看它在项目中的位置(比如是否在
public下却没被引用) - 对二进制文件(
.zip、.tar.gz、.sqlite),用 VSCode 内置的 hex editor(右键 → “Open With…” → “Hex Editor”)扫一眼 header,确认是不是临时下载包 - 如果文件名含
cache、tmp、log、backup,大概率可删;但含db、data、export的,先搜代码里有没有require或fs.readFileSync引用它
删完记得检查 Git 状态和运行时行为
删掉大文件后,VSCode 底部状态栏可能不会立刻刷新,git status 却会暴露问题:比如误删了被 .gitignore 忽略但实际需要的配置文件,或者删了还没 commit 的重要数据。
- 删前先
git status --ignored,看哪些大文件本就该被跟踪(比如public/assets/large-video.mp4) - 删完运行一次
npm run dev或对应启动命令,观察控制台是否报错找不到资源、是否页面白屏——有些框架(如 Next.js)会在构建时硬依赖特定体积的占位文件 - 如果删的是日志类文件,留意后续是否自动重建;若不再生成,可能是程序逻辑里写了
fs.appendFile但路径错了,得修代码而不是补文件
真正难的不是找大文件,而是判断它为什么存在、谁在写它、删了之后谁会喊疼。盯着 du 输出时,多花十秒看一眼父目录名和修改时间,比盲目删十个文件更省事。


















