别再用 df 了!这款 GitHub 新晋顶流磁盘管理工具,3 秒帮你揪出占满磁盘的元凶文件!

Posted by Mike on 2025-05-29

你是不是也跟我一样,每次用 df -h 检查磁盘空间时,盯着那密密麻麻的数字和路径,头都大了?满屏的 “/dev/sda1”、“/mnt/xyz”,看得眼花缭乱,根本分不清哪个盘还有空间,哪个盘已经快爆了!

别急,今天我要给你安利一个超级好用的 Linux 工具 —— dysk!它号称 “比 df 好用 100 倍”,不仅能把文件系统信息整理得清清楚楚,还能让你像玩游戏一样轻松管理磁盘。快来跟我一起看看这玩意儿有多香吧!

啥是 dysk?简单说,它就是磁盘管理的“显微镜”

想象一下,dysk 就像是你电脑里的一位超级整理师。它能把你那些乱七八糟的磁盘信息,比如大小、已用空间、剩余空间、挂载点等等,整理成一张直观的大表格,摆在你面前。比起 df 那冷冰冰的输出,dysk 的界面简直是 “颜值担当”,既好看又好用!

它由一位名叫 Denys Séguret(网名 Canop)的开发者打造,目标就是让 Linux 用户告别 df 的枯燥,轻松掌握文件系统的 “命脉”。而且,dysk 还是免费的开源项目,用起来完全没有心理负担!

Gihtub 项目地址:https://github.com/Canop/dysk

核心功能:让磁盘管理变成 “傻瓜式” 操作

dysk 的核心功能简单粗暴:帮你快速了解和管理文件系统。它不仅能展示信息,还能让你随心所欲调整输出方式,像玩“定制化拼图”一样。下面是它的几个“绝活”,让你用得爽到飞起!

  1. 表格输出,信息一目了然

运行 dysk,你会看到一个漂亮的表格,默认显示文件系统(fs)、类型(type)、磁盘(disk)、已用空间(used)、使用率(use)、剩余空间(free)、总大小(size)和挂载点(mp)。

这些信息用颜色区分,清晰又直观,哪怕你是 Linux 小白,也能秒懂哪个盘快满了!想看全部信息?用 dysk -c all,就能显示所有可用列,比如设备 ID(dev)、节点数(inodes)等。不过,官方提醒,-c all 信息量有点大,日常用默认列就够了!

  1. 灵活筛选,精准锁定目标磁盘

dysk 的筛选功能简直像给磁盘装了个“智能搜索”!用 --filter(或 -f)参数,你可以根据任何列的值筛选文件系统。比如,想看大于 100GB 的磁盘?敲 dysk -f ‘size>100G’,立马挑出大容量盘。想只看 ext4 类型且非远程的磁盘?用 dysk -f 'type=ext4 & remote=false',精准到飞起!支持的运算符有 =、<、>、!=,还能用 |(或)、&(与)、!(非)和括号组合条件,比如 dysk -f '(size<35G | remote=false) & type=xfs',复杂需求也能轻松搞定!默认只显示“常规”文件系统(不含临时或虚拟盘),想看全部?加个 -a 参数就行。

  1. 排序功能,快速找到 “关键盘”

想知道哪个盘最大?哪个最满?dysk 的 --sort(或 -s)参数帮你忙!比如,dysk -s size-desc 按磁盘大小从大到小排序,dysk -s use-desc 按使用率从高到低排,dysk -s type 按文件系统类型排序。支持 asc(升序)或 desc(降序),还能简写成 a 或 d,比如 dysk -s size-a。这功能简直是强迫症患者的福音,数据整齐得像刚收拾好的桌面!

  1. JSON 和 CSV 输出,程序员的“效率神器”

程序员看过来!dysk 支持把数据导出为 JSON 或 CSV,完美适配脚本和报表需求。用 dysk -j(或 --json),输出结构化的 JSON 数组,每个文件系统包含详细信息,比如设备信息(dev)、磁盘类型(disk)、统计数据(stats)等。比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
{
"fs": "/dev/sda1",
"fs-type": "ext4",
"mount-point": "/",
"stats": {
"size": "243G",
"used": "162G",
"available": "81G",
"used-percent": "67%"
},
"remote": false
}
]

想用 jq 处理?直接 dysk -j | jq '.[] | select(.stats.available < "50G")',找出剩余空间小于 50GB 的磁盘。

CSV 也一样简单,dysk --csv -f 'size>100G' -c remote+default > mounts.csv,还能用 --csv-separator 自定义分隔符,比如 dysk --csv --csv-separator ";"。这些功能让数据分析和自动化脚本轻松上手!

  1. 自定义列,打造你的专属表格

dysk 的表格支持高度自定义,用 --cols(或 -c)参数选择显示的列。比如,dysk -c label+use+size+disk+mount 只显示标签、使用率、大小、磁盘和挂载点。想加节点数?dysk -c +inodes 搞定。想去掉某列?用 -,比如 dysk -c default-use 移除使用率列。还能用 dysk --list-cols 查看所有可用列名,灵活得像搭积木!默认列已经够日常使用,但你随时可以按 spells

  1. 跨平台支持,连安卓都不放过

dysk 不只支持 Linux,连安卓和 NetBSD 也能跑!它的下载目录提供了各种架构的预编译二进制文件,比如 x86_64、ARM、RISC-V 等等。直接下载,设置权限,丢到 /usr/local/bin,分分钟就能用起来。

安装 dysk:从零到上手,简单到飞起

别担心,dysk 的安装过程跟它的使用一样简单。以下是几种安装方式,适合不同人群,包你分分钟上手!

方式 1:下载预编译二进制文件(最快!)

  1. 下载文件

    打开 dystroy.org/dysk/download,找到适合你系统的版本。比如,Linux 用户可以选 x86_64-linux 下的 dysk_2.10.1.zip(截至 2025 年 5 月 14 日,最新版本是 2.10.1)。安卓用户可以选 aarch64-linux-android,NetBSD 用户也有专门的包!

  2. 解压并设置权限

    下载后解压,比如 unzip dysk_2.10.1.zip,得到一个 dysk 可执行文件。运行 chmod +x dysk 确保它可以执行。然后,移到系统路径,比如 mv dysk /usr/local/bin/,这样就能在任意地方运行 dysk 了。

  3. 验证安装

    敲 dysk --version,如果看到版本号(比如 2.10.1),恭喜你,安装成功!直接运行 dysk,就能看到漂亮的表格输出。

适合人群:不想折腾、追求效率的懒人(像我!)。

方式 2:用 Homebrew 一键安装(Mac 和 Linux 用户专属)

如果你用 Homebrew,直接在终端输入:

1
$ brew install dysk

几秒钟后,dysk 就装好了!Homebrew 会自动处理依赖和路径设置,跑 dysk 就能直接用。

适合人群:Homebrew 忠实粉丝,喜欢一键搞定。

方式 3:从源码编译(Rust 爱好者的最爱)

想自己动手编译?dysk 是用 Rust 写的,源码在 GitHub: Canop/dysk。步骤如下:

  1. 准备 Rust 环境

    确保你装了 Rust(可以用 rustup update 更新到最新版)。Ubuntu/Debian 用户可能还需要安装编译依赖,运行:

    1
    $ sudo apt install build-essential
  2. 克隆并编译

    克隆仓库:

    1
    2
    3
    $ git clone https://github.com/Canop/dysk
    $ cd dysk
    $ cargo install --locked --path .

    编译好的文件在 target/release/dysk。

  3. 移动到系统路径

    运行 mv target/release/dysk /usr/local/bin/,然后敲 dysk --version 确认安装成功。

适合人群:喜欢折腾源码的技术 geek,或者想体验最新功能的开发者。

安装小贴士

  • 遇到问题? 如果编译报错,可能是 Rust 版本太旧(运行 rustup update),或者缺依赖(Ubuntu/Debian 用户试试 sudo apt install build-essential)。
  • 安卓用户注意:Termux 用户可以直接用安卓版本的二进制文件,装好后丢到 /data/data/com.termux/files/usr/bin/,一样好使!
  • 想确认版本? 随时运行 dysk --version,看看是不是最新版(当前是 2.10.1)。

为什么 dysk 比 df 好用?亲测体验告诉你

我第一次用 dysk 的时候,感觉就像从黑白电视升级到了 4K 大屏!df -h 的输出虽然功能齐全,但信息太密集,经常让我抓瞎。dysk 就不一样了,它把信息整理得像一份精心设计的报表,直观又好看。

比如,我有块磁盘叫 “Obelix”(哈哈,是不是很有个性?),用 df 看的时候,我得费劲找它的挂载点和剩余空间。

用 dysk 呢?直接 dysk -c label+use+free,Obelix 的状态一目了然,剩余 67GB 空间直接跳到我眼前,省时省力!

还有一次,我想找所有大于 500GB 的本地磁盘,用 dysk -f 'size>500G & remote=false',几秒钟就筛选出来,效率高到飞起!相比之下,df 得配合 awk 或 grep 才能干这活,麻烦得要命。

谁适合用 dysk?几乎所有人!

  • Linux 新手:dysk 的默认输出简单直观,不用懂太多命令行知识就能上手。
  • 运维工程师:筛选和排序功能让你快速定位问题磁盘,省下宝贵时间。
  • 程序员:JSON 和 CSV 输出简直是为脚本量身定制,批量处理磁盘信息so easy。
  • 强迫症患者:自定义列和排序功能,满足你对数据整洁的极致追求!

不管你是学生、开发者还是服务器管理员,dysk 都能让你的磁盘管理变得轻松又愉快。

实际场景:dysk 怎么帮你省心?

dysk 的强大功能在实际场景中简直是 “救命神器”。以下是几个真实案例,告诉你它怎么让磁盘管理变得轻松又高效!

场景 1:清理磁盘空间

某天你发现 “Obelix” 盘只剩 67GB 空间,急需清理!运行 dysk -s use-desc,立刻看到使用率最高的盘是它,占用 67%(162GB/243GB)。

想知道具体哪些文件占空间?结合 broot 的 “whale spotting” 模式(br -w),按大小排序文件和目录,找到几个大文件,比如 /home/user/Videos/4K_movie.mp4 占了 20GB。

dysk -c label+size+mount 确认挂载点,再用 brootCtrl+G 标记大文件,Ctrl+→ 切换到 staging 面板,输入 :rm 删除,20 GB 空间瞬间解放!整个过程直观又快速,省得你满头大汗翻文件夹。

场景 2:服务器巡检

如果你是运维,管理几十台服务器的磁盘,dysk 是你的 “效率加速器”。运行 dysk -j | jq '.[] | select(.stats.available < "10G")',快速找出剩余空间小于 10GB 的磁盘,比如某个 /dev/sdb1 只剩 8GB。想确认是不是 SSD 盘?用 dysk -f 'disk.type=SSD' -c disk+free,只显示 SSD 磁盘的剩余空间。再用 dysk -s free-asc -f 'remote=false',按剩余空间升序排列本地磁盘,快速定位问题盘,自动化脚本轻松搞定巡检!

场景 3:给老板做报表

老板突然要一份磁盘使用情况的报表?别慌!运行 dysk --csv -f 'size>100G' -c label+use+size+mount > report.csv,生成只包含大于 100GB 磁盘的 CSV 文件,字段包括标签、使用率、大小和挂载点。想用分号分隔?加个 --csv-separator ";"。导入 Excel 稍作美化,报表瞬间高端大气,老板看了直点头!还能用 dysk -c +inodes -f 'inodes.used-percent>80%' 检查节点使用率超 80% 的磁盘,防患于未然。

小彩蛋:dysk 背后的开发者故事

dysk 的作者 Denys Séguret 是个超级有爱的开发者,网名叫 Canop,活跃在 Rust 社区。除了 dysk,他还开发了其他实用工具,比如文件管理神器 broot 和 Rust 代码检查工具 bacon。这些工具都秉承一个理念:简单、直观、好用。他在 dystroy.org 上分享了自己的开发心得,还提供咨询服务,妥妥的技术大牛!

而且,dysk 是完全免费的开源项目,代码托管在 GitHub 上(Canop/dysk)。有 bug 或者新想法?直接去 GitHub 提 issue,或者加入 Miaou 聊天室跟作者聊聊。

总结:dysk,磁盘管理的 “快乐源泉”

用过 dysk 之后,我再也不想碰 df 了!它的直观表格、灵活筛选、强大排序和多样化输出,简直让磁盘管理变成了一种享受。不管你是想快速检查磁盘状态,还是需要深度分析文件系统,dysk 都能让你事半功倍。

快去 dystroy.org/dysk 下载试试吧!装上之后,跑个 dysk,感受一下磁盘管理的 “新世界”。用完记得回来告诉我,你是不是也爱上了这个小神器?评论区见!