我用一个 CLI 命令在 10 秒内释放了 12GB 磁盘空间

发布: (2026年3月8日 GMT+8 20:12)
8 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您想要翻译的具体文本内容(文章正文),我将把它翻译成简体中文并保留原有的 Markdown 格式。谢谢!

磁盘几乎已满? 你的开发工具可能是罪魁祸首

你知道那条在你正忙着处理重要事务时弹出的 “disk almost full” 通知吗?没错,就是它。

我过去常常花 20 分钟去追查到底是什么在占用我的磁盘空间。结果发现答案几乎总是 相同 的:我自己的开发工具

你的开发机器正在悄悄占用数 GB 的垃圾

一个在站会中没人提及的肮脏秘密:你曾经克隆、构建并忘记的每一个项目仍然停留在磁盘上,悄悄消耗空间。

  • 那个一月的副项目?它的 node_modules 仍然在那里。
  • 那个周末尝试的 Rust 实验?target/ 文件夹已经有 800 MB。
  • 那三个 Docker 教程?大量悬挂的镜像。

更糟的是 每个工具都有自己的清理命令

rm -rf node_modules                # per project, manually
docker system prune                # Docker
brew cleanup --prune=all          # Homebrew
pip cache purge                   # Python
cargo clean                       # Rust, per project
rm -rf ~/Library/Developer/Xcode/DerivedData  # Xcode
npm cache clean --force           # npm

七条不同的命令。有的需要针对每个项目执行,有的你甚至会忘记它们的存在。它们都没有给出一个清晰的视图,告诉你到底浪费了多少空间。

我受够了,于是我做了点东西。

认识 devclean – 一个可以扫描并清理一切的 CLI

devclean 是一个单一命令,能够查找整个开发环境中所有可回收的空间,并让你一次性清理它们。

安装

npm install -g devclean-cli

扫描

devclean scan

无需配置、无需设置、无需标志。它会遍历你的主目录并找到所有内容。

实际扫描的样子

$ devclean scan

  devclean — scanning /Users/you

  Scanning node_modules... found 23 (4.7 GB)
      1.2 GB  142d ago  ~/old-client-project/node_modules
      891.0 MB   98d ago  ~/freelance-2024/node_modules
      620.3 MB   67d ago  ~/hackathon-app/node_modules
      ... 20 more

  Scanning Cargo targets... found 2 (1.2 GB)
      803.4 MB  ~/rust-playground/target
      421.1 MB  ~/cli-tool-experiment/target

  Scanning package manager caches... found 2 (890.0 MB)
      540.2 MB  npm cache — ~/.npm
      349.8 MB  yarn cache — ~/Library/Caches/Yarn

  Scanning Docker... found 3 item(s)
      5 dangling image(s)
      2 stopped container(s)
      Docker system (use docker system prune)

  Scanning Homebrew cache... 2.1 GB
        2.1 GB  ~/Library/Caches/Homebrew

  Scanning Xcode DerivedData... 3.4 GB
        3.4 GB  ~/Library/Developer/Xcode/DerivedData

  Total reclaimable: 12.3 GB
  Run devclean clean to free this space

12.3 GB——就这么静静地挂在那里,什么也不做。二十三个 node_modules 文件夹来自几个月前未触碰的项目,Cargo 的构建产物来自你“刚尝试”的语言,Homebrew 的下载来自六个月前安装的包。

删除前预览

还没准备好动手吗?使用 --dry-run

$ devclean clean --dry-run

  devclean dry run

  [dry-run] Would delete 1.2 GB  ~/old-client-project/node_modules
  [dry-run] Would delete 891.0 MB  ~/freelance-2024/node_modules
  [dry-run] Would delete 620.3 MB  ~/hackathon-app/node_modules
  ...
  [dry-run] Would delete 803.4 MB  ~/rust-playground/target
  [dry-run] Would clean npm cache
  [dry-run] Would run docker system prune
  [dry-run] Would clean Homebrew cache
  [dry-run] Would delete 3.4 GB  ~/Library/Developer/Xcode/DerivedData

  Dry run complete. No files were deleted.

没有任何文件被触碰。您可以看到将会发生的情况。

只清理你想要的内容

也许你现在只关心 node_modules。没问题:

devclean clean --node-modules

或者只清理 Docker:

devclean clean --docker

或者指定某个目录:

devclean clean -p ~/projects/2024

每个目标都有自己的标志,让你保持掌控。

使用 --older-than 保护活跃项目

这是我最喜欢的参数。如果你担心清理正在积极开发的项目的 node_modules,可以添加一个年龄过滤器:

devclean clean --older-than 30

只有那些在 30 天以上未被修改的项目会被删除。你当前的项目保持不变。那三个月前的项目,你说“一定会回来的”?已经消失。你随时可以在 15 秒内再次运行 npm install

我把它放在每周的 cron 任务中运行:

devclean clean --older-than 60

设置好后就忘了它。我的磁盘再也不会满了。

它清理的内容

目标查找内容清理方式
node_modules您的所有项目中的 node_modules/ 文件夹rm -rf
Docker悬挂的镜像、已停止的容器、构建缓存docker system prune
Homebrew已下载的包缓存brew cleanup --prune=all
pipPython 包下载缓存pip cache purge
CargoRust 的 target/ 构建目录rm -rf
XcodeDerivedData 构建缓存rm -rf
npm / Yarn包管理器下载缓存npm cache clean / yarn cache clean

重要: devclean scan 始终是 只读 的。它永不删除任何内容。您必须显式运行 devclean clean 才会删除文件,并且它只会触及已知的缓存和构建目录——绝不会影响您的源代码。

安装与使用回顾

npm install -g devclean-cli
devclean scan                 # 查看是什么占用了磁盘
devclean clean --dry-run      # 预览清理操作
devclean clean                # 释放空间

在 macOS 和 Linux 上运行。需要 Node.js 16+。

为什么我写了它

我已经做开发多年了,却仍然每隔几个月就会发现磁盘空间不足。解决办法总是一样的:删除一堆 node_modules、清理 Docker、清除一些缓存。每次都要查找并输入这些命令,耗时 10‑20 分钟。

devclean 把这些操作合并成一个只需 10 秒的命令。

如果你觉得这很有用,试试看吧。如果你喜欢它,在 GitHub 上点个星星会有很大帮助。

链接

devclean scan 在你的机器上找到了多少空间?把数字留在评论区。我敢打赌,它比你想象的要多。

0 浏览
Back to Blog

相关文章

阅读更多 »