#tree #directory-listing #utility #command-line-tool #directory-structure #pattern-matching #cli

bin+lib rust_tree

tree 是一个跨平台的树形应用程序和库,可以生成缩进格式的文件目录列表

4 个版本

0.1.4 2023 年 5 月 7 日
0.1.2 2023 年 5 月 7 日
0.1.1 2023 年 5 月 7 日
0.1.0 2023 年 5 月 7 日

#2056命令行实用工具

每月 40 次下载

MIT 许可证

41KB
253 代码行

tree

GitHub release (latest by date) Rust Crate Build & Test MIT License

tree 是一个命令行实用工具,可以递归地以树形格式显示给定路径的目录结构,灵感来源于 Unix 的 tree 命令。它是用 Rust 实现的,旨在提供快速高效的替代方案,并具有额外的功能。

tree Example

功能

  • 以树形格式显示目录结构
  • 使用 -L 标志控制递归深度
  • 使用 -f 标志显示完整路径
  • 使用 -i 标志不进行缩进
  • 使用 -a 标志显示隐藏文件
  • 使用 -P 标志包含与模式匹配的特定文件
  • 使用 -s 标志显示每个文件的尺寸
  • 使用 -h 标志显示每个目录的总尺寸
  • 使用 -C 标志对输出进行着色
  • 使用 -n 标志关闭着色
  • 使用 -I 标志排除与模式匹配的特定文件
  • 使用 -o 标志将输出发送到文件名
  • 使用 --filelimit 标志不进入包含超过 # 个条目的目录
  • 使用 dirsfirst 标志在文件之前列出目录

免责声明

使用此项目学习 Rust,因此它不是生产就绪的。请随时提交改进的 PR。

安装

下载二进制文件

各种平台的可用二进制文件在 发布页面(Windows、MacOS、Linux)上。

  • 下载并解压到您的平台
  • 如果放在 $PATH 中,您可以将其重命名为避免与任何其他 tree 二进制文件混淆

从源代码构建

如果您已安装 Rust 和 Cargo,可以通过运行以下命令来构建项目:

git clone https://github.com/peteretelej/tree.git
cd tree
cargo build --release

./target/release/tree -L 2 .
# copy tree binary to a PATH directory

生成的二进制文件将位于 ./target/release/tree。

用法

./tree [FLAGS] [OPTIONS] [PATH]

例如

./tree -L 2 .

# -L 2: displays upto 2 levels of recursion

作为 Rust 包使用

use rust_tree::tree::{list_directory, options::TreeOptions};

fn main() {
    let path = ".";
    let options = TreeOptions {
        full_path: true,
        no_indent: true,
        ..Default::default()
    };
    list_directory(path, &options).unwrap();
}

使用 bytes_to_human_readable 函数来打印可读的文件大小

use rust_tree::utils::bytes_to_human_readable;
use std::fs;

fn main() {
    let metadata = fs::metadata("my_file.txt").unwrap();
    let size = metadata.len();
    let size_str = bytes_to_human_readable(size);
    println!("File size: {}", size_str);
}

贡献

欢迎贡献!如果您有任何建议、功能请求或错误报告,请随时在 GitHub 仓库 上提交 issue 或 pull request。

许可证

MIT

依赖项

~1.7–10MB
~78K SLoC