#filesize #file-path #command-line #file #size #executable

bin+lib siz

一个多平台、跨平台的命令行文件大小报告执行文件,默认递归文件系统遍历。

4 个版本 (破坏性)

0.4.0 2023 年 12 月 31 日
0.3.0 2023 年 12 月 28 日
0.2.0 2023 年 12 月 26 日
0.1.0 2023 年 12 月 17 日

#272 in 文件系统

Apache-2.0

96KB
1.5K SLoC

siz

Crates.io Unit Tests, Stable Toolchain Unit Tests, Beta Toolchain

siz 是一个可定制的 Rust 命令行文件大小报告执行文件,默认递归文件系统遍历。它支持许多可选路径过滤器排序功能,默认按文件大小从小到大排序,命令行或 .gitignore 文件定义的 glob 模式包含/排除,可读性高的 SI 米制或二进制块大小输出,以及一组默认路径过滤器。

siz 考虑了跨平台兼容性。项目测试在最新的 macOS、Windows 和 Ubuntu Linux GitHub Actions 运行器环境中运行。目标是多平台、快速和跨平台的文件大小报告。

内容

功能

默认

  • 使用 ignore 库进行高效的递归文件系统遍历
  • 以字节为单位报告文件大小
  • 制表符分隔的报告写入
  • 按整个遍历树中最小到最大文件大小排序
  • git 集成,尊重 .gitignore 配置忽略路径定义(仅限于 git VC 仓库)
  • 排除隐藏的 dot 文件和递归 dot 目录内容

可选

  • 通过命令行上的 .gitignore 语法 glob 模式包含/排除文件
  • 通过文件类型名称别名包含文件。使用一个扩展的 ignore 库类型名称列表,其中包含额外的常用二进制文件类型。(完整列表来源
  • 按最大到最小文件大小排序
  • 按路径名称字典顺序排序
  • 定义最大目录深度遍历
  • 以人类可读的 SI 米制块大小格式化文件大小(例如,10 MB)
  • 以人类可读的二进制块大小格式化文件大小(例如,10 MiB)
  • 包含隐藏的 dot 文件和 dot 目录内容
  • 包含符号链接文件路径
  • ANSI 颜色支持,以区分目录父路径和文件路径
  • 如果执行速度至关重要而文件大小顺序不重要,则并行目录遍历

快速入门

任务 命令
递归遍历,按字节大小排序,从小到大 siz[DIR PATH]
通过 .gitignore 全局模式语法过滤输出(支持多模式) siz-g'[PATTERN_1],[PATTERN_2],...' [DIR PATH]
通过文件类型别名名过滤输出(支持多别名名) siz-t'[TYPE_1],[TYPE_2],...' [DIR PATH]
按文件大小从大到小排序 siz-l[DIR PATH]
按文件路径名字典顺序排序 siz-n[DIR PATH]
设置最大目录深度遍历 siz-d2 [DIR PATH]
显示隐藏的点和目录内容 siz-H[DIR PATH]
以国际单位制块格式显示可读文件大小 siz-m[DIR PATH]
以二进制块格式显示可读文件大小 siz-m[DIR PATH]
目录与文件路径的 ANSI 颜色编码 siz-c[DIR PATH]

查看可用选项的列表,请参阅 siz --help

查看支持的内置类型名别名的列表,请参阅 siz --list-types

安装

最小支持的 Rust 版本 (MSRV)

最低支持的 Rust 版本是 1.70.0。

Cargo 安装 (crates.io)

在您的系统上安装 Rust 工具链,然后使用 cargo 包管理器通过以下命令从 crates.io 发行版安装 siz 可执行文件:

cargo install siz

使用相同的命令安装更新后的 crates.io 发布版本。

Cargo 安装 (源仓库)

在您的系统上安装 Rust 工具链,然后使用 cargo 包管理器通过以下命令从本源代码库的主分支安装 siz 可执行文件:

cargo install --git https://github.com/chrissimpkins/siz.git

使用 --force 选项强制安装更新后的开发版本,覆盖之前的安装。

用法

安装会在您的系统 PATH 上提供一个新的 siz 可执行文件。 siz 接受可选参数和一个必需的文件或目录路径位置参数。在命令末尾定义路径。默认情况下,数据以字节为单位。对于目录遍历,数据默认按从小到大的顺序排列。提供了一些命令行选项来配置文件大小报告,包括过滤、排序、可读文件大小格式化和 ANSI 颜色编码路径。有关命令中可用选项的详细信息,请参阅 siz --help 文档。

默认文件过滤行为

  • 忽略所有点文件(自 v0.1.0 版起提供切换选项)
  • 忽略所有在点目录下的递归遍历路径(自 v0.1.0 版起提供切换选项)
  • 在执行在 git 仓库路径上时,使用 .gitignore 文件的全局模式定义来过滤输出。默认情况下,该工具尊重每个文件路径的父目录中的 .gitignore 文件。
  • 尊重本地 .ignore 文件。该文件支持与 .gitignore 文件相同的全局模式语法。它允许您定义与 .gitignore 中定义的不同的一组包含/排除,并在 git 仓库外使用此基于文件的忽略语法。
  • 不会跟踪符号链接(自 v0.4.0 版起提供切换选项)

变更

有关发布版本之间的更改,请参阅 CHANGELOG.md

问题报告

请使用 GitHub 问题跟踪器报告错误或其他问题。谢谢!

贡献

请参阅 CONTRIBUTING.md

许可证

Apache License, v2.0,除非另有说明。

行为准则

请友好且建设性地交流。在与本仓库互动之前,请阅读我们的 Code of Conduct

致谢

  • ignore crate:这个出色的库为我们的递归文件系统遍历提供动力。它是一个强大而高效的解决方案,极大地简化了siz开发。非常感谢Andrew Gallant(《@BurntSushi》)以及所有为ignore项目做出杰出贡献的贡献者!

依赖关系

~8–22MB
~277K SLoC