大家好,我是熊叔,今天继续来逛一下GitHub。
这次翻到的项目,作者有点特别。
一个身家几十亿美金的科技公司的CEO,周末没休息,自己写了个磁盘清理工具。
这事听着像段子,但是真的。
他叫 Tobi Lütke,Shopify 的创始人,二十多年前也是 Ruby on Rails 最早的一批核心开发者。
最近他迷上了 DHH 打造的开源 Linux 系统 Omarchy。
于是随手写了一个磁盘清理工具叫disktree,现在已经1159个star了。
我用下来,它最值得说的就三点:磁盘占用看得清,删除流程做得稳,危险操作管得严。
我给你演示一把,你就知道它有多省事了
我拿自己 WIndows 的C盘试试,打开 disktree 后,它会直接扫描目录,再把所有文件铺成一整块彩色树图,谁占得多谁就更大。
斜线阴影表示缓存、构建产物这类可回收内容,不需要自己一个个地去目录里找。
找到要删除的内容后按下空格键进行标记,再按下 c 键之后打开审查列表,确认之后再执行删除操作。
删除后它会自动重新扫描,下面直接显示出本次释放的空间大小。
整个过程就是点目录、按空格、看确认列表,没有打开终端,也不需要自己敲删除命令。
整个树状图还可以用鼠标一层层地点击进去。
右上角可以调节显示大小、文件数量和目录层级。
有人要好奇了,怎么做到的
01 磁盘使用率要先弄清楚。*
disktree 用树状图来表示磁盘,每个目录所占的空间大小不同,大的占的地方多一些,颜色也不同,代码、缓存、Git仓库、媒体文件等。
选择一个目录后,右边会直接显示出该目录所占的比例、文件的数量以及最后修改的时间。
还可以识别出裸Git仓库、target构建目录、缓存以及同步历史,并将需要重点关注的大目录放入到Worth a look中。
这些分析都在本地完成,不需要上传目录信息。
02 找到了,也不会马上删。
选中文件后先按空格进行标记,然后按下c键打开审查列表,确认之后才会真正执行删除操作,删除完毕之后会自动重新扫描,并显示出释放的空间。
审查列表还能保存下来,或者复制成 prompt 交给 AI 再检查一遍。
我喜欢这样的流程,因为清磁盘最怕的就是多点一下,而不是删错了。
03 最后还有一层安全护栏。
系统目录、挂载点和家目录本身不能删除,symlink 只处理链接,不会继续向里面删除,文件操作也不会经过 shell。
Git 仓库只读取状态,不运行里面的程序,这些规则还有自动化测试覆盖。
所以它和普通磁盘分析工具最大的区别,就是把“找到问题”和“安全清掉”接在了一起。
HN 上有人发这个项目时,标题就两个词:
Find it. Delete it.
基本就是它的全部逻辑。
想试的话,装起来很简单
Linux、macOS 和 Windows 都有现成版本,可以直接从 GitHub Releases 下载。
Linux 解压后运行:
./install.sh
直接安装到用户的目录中,不需要root权限。
macOS 把 disktree.app 拖进 Applications,Windows 解压后直接运行。
正常启动:
disktree
默认扫描家目录,想看整个磁盘就加:
--disk
文件管理器里右键某个目录,也能直接用 disktree 打开。
自己编译的话,需要 Rust 1.97 以上版本,在 Linux 上还需要有可以正常运行 GPU 和 Vulkan 的显卡环境。
到这里边界也给大家提提
我用下来,有几个地方得提前知道。
它需要用到 GPU 来运行 Vulkan,虚拟机没有正常图形加速时,界面可能直接起不来。
删除前有好几层确认,但真正执行永久删除时依然很直接,所以审查列表一定要看清楚。
Age 模式是根据文件最后修改的时间来判断的,并不能说明文件是否被使用过,因此用它来判断长期不用的话只能作为参考。
项目出来不久,中文教程和生态都不多,遇到问题基本上还是要自己去翻 README 和 Issue。
所以目前我更愿意把它当作一个新的工具来使用,如果真的要把它放到主力机上,我会再观察一段时间。
写在最后
我比较喜欢 disktree 的地方,就是它没有把重点只放在找大文件上。
把扫描、标记、审核、删除的过程整合成一个流程,使用起来会更省心。
现在它还很新,也有一些限制。
如果硬盘常常被缓存、构建目录和历史文件占满的话,可以试一试。
开源地址:https://github.com/tobi/disktree
平时我会持续分享一些有趣的开源项目,有兴趣的朋友可以关注一下。
回复关键词,可以找到你想要的项目。