社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

仅仅5MB,CEO 写的磁盘清理工具在 Github 上火了。

开源日记 • 1 月前 • 291 次点击  


大家好,我是熊叔,今天继续来逛一下GitHub。

这次翻到的项目,作者有点特别。

一个身家几十亿美金的科技公司的CEO,周末没休息,自己写了个磁盘清理工具。

这事听着像段子,但是真的。

他叫 Tobi Lütke,Shopify 的创始人,二十多年前也是 Ruby on Rails 最早的一批核心开发者。

图片

最近他迷上了 DHH 打造的开源 Linux 系统 Omarchy。

图片

于是随手写了一个磁盘清理工具叫disktree,现在已经1159个star了。

图片

我用下来,它最值得说的就三点:磁盘占用看得清,删除流程做得稳,危险操作管得严。

我给你演示一把,你就知道它有多省事了

我拿自己 WIndows 的C盘试试,打开 disktree 后,它会直接扫描目录,再把所有文件铺成一整块彩色树图,谁占得多谁就更大。

图片

斜线阴影表示缓存、构建产物这类可回收内容,不需要自己一个个地去目录里找。

图片

找到要删除的内容后按下空格键进行标记,再按下 c 键之后打开审查列表,确认之后再执行删除操作。

图片
图片

删除后它会自动重新扫描,下面直接显示出本次释放的空间大小。

图片

整个过程就是点目录、按空格、看确认列表,没有打开终端,也不需要自己敲删除命令。

整个树状图还可以用鼠标一层层地点击进去。

图片

右上角可以调节显示大小、文件数量和目录层级。

图片

有人要好奇了,怎么做到的

01 磁盘使用率要先弄清楚。*

disktree 用树状图来表示磁盘,每个目录所占的空间大小不同,大的占的地方多一些,颜色也不同,代码、缓存、Git仓库、媒体文件等。

选择一个目录后,右边会直接显示出该目录所占的比例、文件的数量以及最后修改的时间。

disktree 树图与右侧信息面板

还可以识别出裸Git仓库、target构建目录、缓存以及同步历史,并将需要重点关注的大目录放入到Worth a look中。

Worth a look 位于右侧面板

这些分析都在本地完成,不需要上传目录信息。

02 找到了,也不会马上删。

选中文件后先按空格进行标记,然后按下c键打开审查列表,确认之后才会真正执行删除操作,删除完毕之后会自动重新扫描,并显示出释放的空间。

审查列表还能保存下来,或者复制成 prompt 交给 AI 再检查一遍。

我喜欢这样的流程,因为清磁盘最怕的就是多点一下,而不是删错了。

03 最后还有一层安全护栏。

系统目录、挂载点和家目录本身不能删除,symlink 只处理链接,不会继续向里面删除,文件操作也不会经过 shell。

Git 仓库只读取状态,不运行里面的程序,这些规则还有自动化测试覆盖。

所以它和普通磁盘分析工具最大的区别,就是把“找到问题”和“安全清掉”接在了一起。

HN 上有人发这个项目时,标题就两个词:

Find it. Delete it.

基本就是它的全部逻辑。

想试的话,装起来很简单

Linux、macOS 和 Windows 都有现成版本,可以直接从 GitHub Releases 下载。

图片

Linux 解压后运行:

BASH
./install.sh

直接安装到用户的目录中,不需要root权限。

macOS 把 disktree.app 拖进 Applications,Windows 解压后直接运行。

正常启动:

BASH
disktree

默认扫描家目录,想看整个磁盘就加:

BASH
--disk

文件管理器里右键某个目录,也能直接用 disktree 打开。

自己编译的话,需要 Rust 1.97 以上版本,在 Linux 上还需要有可以正常运行 GPU 和 Vulkan 的显卡环境。

到这里边界也给大家提提

我用下来,有几个地方得提前知道。

它需要用到 GPU 来运行 Vulkan,虚拟机没有正常图形加速时,界面可能直接起不来。

删除前有好几层确认,但真正执行永久删除时依然很直接,所以审查列表一定要看清楚。

Age 模式是根据文件最后修改的时间来判断的,并不能说明文件是否被使用过,因此用它来判断长期不用的话只能作为参考。

项目出来不久,中文教程和生态都不多,遇到问题基本上还是要自己去翻 README 和 Issue。

所以目前我更愿意把它当作一个新的工具来使用,如果真的要把它放到主力机上,我会再观察一段时间。

写在最后

我比较喜欢 disktree 的地方,就是它没有把重点只放在找大文件上。

把扫描、标记、审核、删除的过程整合成一个流程,使用起来会更省心。

现在它还很新,也有一些限制。

如果硬盘常常被缓存、构建目录和历史文件占满的话,可以试一试。

开源地址:https://github.com/tobi/disktree

平时我会持续分享一些有趣的开源项目,有兴趣的朋友可以关注一下。

回复关键词,可以找到你想要的项目。

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/201570