#disk-space #artifact #build #directory #du #command-line-tool #find

bin+lib tin-summer

命令行工具,用于查找您计算机上的构建工件和占用空间的物品。打破的不是玻璃记录。

106 个稳定版本

使用旧的 Rust 2015

1.21.14 2021年2月24日
1.21.13 2020年1月4日
1.21.10 2019年11月8日
1.21.8 2018年11月13日
1.11.3 2017年7月29日

文件系统 中排名第 402

Download history 10/week @ 2024-03-08 6/week @ 2024-03-15 2/week @ 2024-03-22 33/week @ 2024-03-29 2/week @ 2024-04-05 1/week @ 2024-04-19 1/week @ 2024-04-26

每月下载量 170

自定义许可证

195KB
2K SLoC

《金色的夏天》

Windows build status Build Status

如果您做大量的编程,您可能会发现构建工件散布各处。《sn》是一个帮助您查找这些工件的工具。

sn 还可以替代 du。它有更友好的输出,更合理的命令和默认设置,并且由于多线程,它在大目录上运行得更快。

安装

脚本

在命令提示符中输入以下内容

curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/tin-summer

二进制安装

如果脚本对您不起作用,您可以从 发布页面 下载二进制文件。

Cargo

如果您的平台没有二进制文件,或者您想从源代码构建,请获取 cargo。然后

 $ cargo install tin-summer

确保您处于夜间模式;否则

 $ rustup run nightly cargo install tin-summer

使用

列出当前目录的目录和文件大小

$ sn f

并发地获取目录大小列表,排除版本控制

 $ sn p --exclude '\.git|\.pijul|_darcs|\.hg'

获取 $DIR 中 12 个最大目录的排序列表

 $ sn sort $DIR -n12

在当前目录中搜索包含构建工件的目录

 $ sn ar

查找占用超过 200MB 磁盘空间的工件或包含工件的目录

 $ sn ar -t200M

无障碍访问

关闭彩色输出

export CLICOLOR=0

比较(或,我讨厌 du 的 10 件事)

使用 du 的原因

  • 读取磁盘使用情况,而不仅仅是文件大小
  • 可选地取消符号链接引用
  • 在小目录上略微更快
  • 稳定且得到良好支持

使用 sn 的原因

  • 在大目录上更快
  • 使用 regex 进行排除,这使得它在使用 --exclude 标志时比 du 快得多。
  • 默认为可读性输出
  • 彩色输出
  • 通过 clap 提供更友好的帮助
  • 提供排序输出
  • 查找构建工件
  • 读取文件大小,而不是磁盘使用情况
  • 在 Rust 中可扩展

基准测试结果

目录大小 工具 命令 时间
600MB sn sn p 60.74 ms
600MB sn sn d 99.92 ms
600MB du du-hacd2 88.28 ms
4GB sn sn p 185.2 ms
4GB sn sn d 271.9 ms
4GB du du-hacd2 195.5 ms
700MB sn sn p 91.05 ms
700MB sn sn d 176.3 ms
700MB du du-hacd2 153.8 ms
7MB sn sn p 19.48 ms
7MB sn sn d 12.72 ms
7MB du du-hacd2 10.13 ms

这些命令在功能上基本上是等效的,除了 sn p 可能比 sn adu 使用更多的线程。结果使用 Gabriel Gonzalez 的 bench 工具获得。您可以在 这里这里 看到很棒的准则图表。

总之:是的,sn 在较大的目录上确实更快,但在较小的目录上也更慢。我希望能使其在未来更快;当前的简单并发模型有明显的改进方向。

屏幕截图(alacritty + solarized dark)

《金色的夏天》

Displaying a user's timeline in a terminal.

du

Displaying a user's timeline in a terminal.

构建工件的自适应方法

目前,sn 查找与构建工件相关联的扩展名的文件,或者被版本控制忽略的可执行文件。它还查找“构建目录”,如 .stack-workelm-stuff 等,如果它找到一个配置文件如 tweet-hs.cabal,它将认为 所有 这些内容都是构建工件。

支持的语言

以下是在 sn artifacts 中测试过的语言列表。我们的 意图 是支持基本上任何东西,所以请随意打开 PR 或开始一个问题。

  • Haskell(包括 GHCJS)
  • Rust
  • Julia
  • Python
  • Elm
  • Nim
  • Vimscript
  • TeX
  • Idris
  • FORTRAN
  • Ruby
  • C
自动清理

sn 可以为您清理工件,但仅限于上述指示的语言。这仍然是实验性的,但它已经过测试,不应该删除不需要的文件(尽管它可能不会清理所有应该清理的文件)。

依赖关系

~6–15MB
~164K SLoC