# tree **Repository Path**: bikajiu/tree ## Basic Information - **Project Name**: tree - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-03 - **Last Updated**: 2025-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tree - Linux tree 命令的 Rust 实现 [![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](https://gitee.com/bikajiu/tree/releases) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) [![Rust](https://img.shields.io/badge/rust-1.70+-orange.svg)](https://www.rust-lang.org/) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey.svg)](#) 这是一个使用 Rust 编写的 Linux `tree` 命令的实现。它能够以树状格式显示目录结构。 ## 🚀 最新发布 **版本 1.0.0** - 2025-09-04 - ✨ 首个稳定发行版本 - 🌏 完整中文化支持 - 📁 完整的 tree 命令功能实现 - 📊 文件大小显示和输出到文件功能 - ✅ 完整的测试覆盖 查看 [变更日志](./CHANGELOG.md) 了解详细更新内容。 ## 功能特性 - 📁 递归显示目录和文件结构 - 🌳 漂亮的树状视觉格式(使用 Unicode 字符 ├──、└──、│) - 📊 统计目录和文件数量 - 📏 显示文件大小(支持自动单位转换:B、KB、MB、GB、TB) - 💾 输出结果到文件 - 🔍 支持多种命令行选项 - ⚡ 高性能的 Rust 实现 ## 安装 ```bash # 克隆项目 git clone https://gitee.com/bikajiu/tree cd tree # 编译项目 cargo build --release # (可选)安装到系统路径 cargo install --path . ``` ## 使用方法 ### 基本用法 ```bash # 显示当前目录的树状结构 cargo run # 显示指定目录的树状结构 cargo run -- /path/to/directory ``` ### 命令行选项 ```bash # 显示帮助信息 cargo run -- --help # 显示所有文件(包括隐藏文件) cargo run -- -a # 仅显示目录 cargo run -- -d # 限制显示深度(例如只显示2层) cargo run -- -L 2 # 不显示文件和目录统计 cargo run -- -n # 显示文件大小 cargo run -- -s # 输出到文件 cargo run -- -o output.txt # 组合使用多个选项 cargo run -- -s -d -L 3 -o tree.txt /path/to/directory ``` ## 示例输出 ### 基本树状结构 ``` . ├── src │ └── main.rs ├── target │ ├── debug │ │ ├── build │ │ ├── deps │ │ └── tree.exe │ └── CACHEDIR.TAG ├── tests │ └── integration_test.rs ├── Cargo.lock ├── Cargo.toml └── README.md 6 directories, 6 files ``` ### 显示文件大小 ``` . ├── src/ │ └── main.rs [6.3 KB] ├── tests/ │ └── integration_test.rs [1.7 KB] ├── Cargo.lock [6.8 KB] ├── Cargo.toml [125 B] └── README.md [2.6 KB] 2 directories, 5 files ``` ## 支持的选项 | 选项 | 长选项 | 描述 | |------|---------|------| | `-a` | `--all` | 显示所有文件,包括隐藏文件 | | `-d` | `--dirs-only` | 仅显示目录 | | `-L ` | `--level ` | 限制目录遍历的深度 | | `-n` | `--no-count` | 不显示文件/目录统计 | | `-o ` | `--output ` | 输出到指定文件而不是标准输出 | | `-s` | `--size` | 显示文件大小 | | `-h` | `--help` | 显示帮助信息 | ## 与原版 tree 命令的对比 这个实现包含了原版 Linux `tree` 命令的核心功能: ✅ 树状目录结构显示 ✅ 文件和目录统计 ✅ 深度限制 ✅ 隐藏文件显示 ✅ 仅显示目录选项 ✅ 文件大小显示(增强功能) ✅ 输出到文件(增强功能) ✅ 命令行参数解析 ## 技术实现 - **语言**: Rust - **依赖**: clap (命令行参数解析) - **特性**: - 递归目录遍历 - Unicode 树状字符绘制 - 错误处理和权限检查 - 高性能文件系统操作 ## 开发和测试 ```bash # 运行测试 cargo test # 检查代码 cargo check # 格式化代码 cargo fmt # 运行 clippy 检查 cargo clippy ``` ## 贡献 欢迎提交 Issue 和 Pull Request! ## 许可证 本项目采用 MIT 许可证。