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 次下载
41KB
253 代码行
tree
tree
是一个命令行实用工具,可以递归地以树形格式显示给定路径的目录结构,灵感来源于 Unix 的 tree
命令。它是用 Rust 实现的,旨在提供快速高效的替代方案,并具有额外的功能。
功能
- 以树形格式显示目录结构
- 使用
-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