V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
imes
V2EX  ›  分享发现

告别 du -h:我用 Rust 写了一个更直观的目录空间查看器

  •  
  •   imes · 1 天前 · 989 次点击

    YP:一个用 Rust 编写的目录空间查看器

    GitHub 地址 https://github.com/uselibrary/yp,依旧 GPLv3 ,继续疯狂“传染”全世界。名称来源于拼音缩写:

    硬盘 --> yingpan --> yp

    为什么要写这个工具?

    平时常用 du -h 或者 ncdu,但总觉得输出不够直观,尤其是在快速查看目录大小分布时。我非常喜欢 Windows 的直接选中文件夹,然后查看大小的操作。于是我用 Rust 写了一个更现代、更直观的工具:YP。这个应该不算是“用 Rust 重写”了吧。

    特性一览

    • 📊 ASCII 条形图,直观显示占用比例
    • 🗂️ 递归遍历按大小排序多格式输出(文本/JSON )
    • 📏 智能单位转换( B/KB/MB/GB/TB )
    • 🖥️ 自适应终端宽度,完美对齐,长文件名智能处理
    • 🚀 Rust 编写,静态编译,仅 1.3MB ,无依赖
    • 📦 支持 Linux/macOS/Windows (理论上支持 Windows ,没试过)

    使用示例

    • 标准模式,提供类型、自动单位、数量等信息展出。 clipboard_20250902204743.png

    • 查看指定文件夹并以 ASCII 艺术风格条形图形式显示 clipboard_20250902210136.png

    📋 命令行选项

    选项 长选项 描述
    -p --path <PATH> 指定要分析的目录路径(默认: 当前目录)
    -s --sort 按大小排序显示
    -j --json 以 JSON 格式输出
    -c --chart 显示 ASCII 艺术风格条形图
    -r --recursive 递归显示所有子目录
    -S --summary 只显示目录和总大小,不显示详细内容
    -h --help 显示帮助信息
    -V --version 显示版本信息

    除此之外,还有很多其他功能,就不赘述了。 Rust 写命令行工具真的舒服,有什么需要的,直接随手写一个,只要能用也不担心性能和安全问题,一次烧脑享用好几年。

    12 条回复    2025-09-03 14:15:40 +08:00
    piku
        1
    piku  
       1 天前 via Android
    wiztree:你好
    qdirstat:欢迎
    misaka19000
        2
    misaka19000  
       1 天前
    ui 有点丑
    boywang004
        3
    boywang004  
       1 天前
    cli 下一直用 duf ,还不错。
    heimoshuiyu
        4
    heimoshuiyu  
       1 天前
    ncdu: 您好
    noqwerty
        5
    noqwerty  
       1 天前   ❤️ 1
    有跟 https://github.com/bootandy/dust 对比过吗?
    twig
        6
    twig  
       1 天前
    你们啥都用 Rust 写,我都想学 Rust 了。
    zhuweitung
        7
    zhuweitung  
       1 天前
    gdu
    imes
        8
    imes  
    OP
       1 天前
    @twig 6#
    Rust 是今年来,少有的给编写者和使用者带来信心的语言了,上一次还是 Java
    nicoljiang
        9
    nicoljiang  
    PRO
       1 天前
    @imes 只有我一个人作为使用者对 Java 项目感到非常焦虑吗?这么多年使用下来(无论早期的 solr ,后来的 elasticsearch 、或是前几年的 qdb )的感受是:Java 基本能跟 OOM 划等号。而且 Java 就像解释型脚本语言一样,似乎不存在编译检查这个过程,很容易运行时报错。

    近几年能让我作为开发者和使用者感到比较安心的就是 go 、swift 、rust ,脚本里面 python 算一个。
    imes
        10
    imes  
    OP
       1 天前
    @nicoljiang 9#
    90 年代之前的语言,平台依赖性和复杂度都是大麻烦,随后 2000 年的互联网热潮又急缺网络应用。现在看 Java 确实一堆问题,但是在 1998 年的时候,Java 是唯一选择。
    nicoljiang
        11
    nicoljiang  
    PRO
       1 天前
    @imes 这么说确实很合理。
    jjfwang
        12
    jjfwang  
       1 天前
    star 一个
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5577 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:34 · PVG 14:34 · LAX 23:34 · JFK 02:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.