3 个版本 (重大更新)
0.3.0 | 2018年12月25日 |
---|---|
0.2.0 | 2018年11月18日 |
0.1.0 | 2018年11月17日 |
在 文件系统 中排名第 1462
25KB
286 代码行
lrg
一个帮助在目录中查找最大文件的工具
需求
构建二进制文件(仅在 macOS 和 Linux 上测试过)
# First clone the repo:
git clone [email protected]:noahrinehart/lrg.git
# cd into it:
cd lrg
# Build it:
cargo build --release
# The binary will be in ./target/release/lrg
示例
请访问 https://docs.rs/lrg/ 获取完整文档
使用二进制文件
要查找当前目录中的最大文件(默认情况下,它搜索当前目录,并只获取前 5 个)
./lrg
要搜索另一个目录(如主目录)
./lrg $HOME
要仅在当前目录中搜索,而不是递归搜索其他目录
./lrg -r
完整用法
lrg 0.3.0
Noah Rinehart <rinehart.noah@gmail.com>
A utility to help find the largest file(s) in a directory
USAGE:
lrg [FLAGS] [OPTIONS] [FILEPATH]
FLAGS:
-b, --absolute outputs files' absolute path (default: false)
-a, --ascending sort the results in ascending order (default: false)
-i, --directories include directories in search (default: false)
-l, --follow-links will follow links of files (default: false)
-r, --no-recursion will only visit files in specified directory, takes precedence over max-depth (default: false)
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-d, --max-depth <MAX_DEPTH> sets the maximum depth of folders to search, unless --no-recursion specified
(default: max possible)
-n, --number <NUM_ENTRIES> sets the number of files to list (default: 5)
-u, --units <UNITS> sets the units to display: decimal for 1000KB, binary for 1024KiB, conventional for
1024KB (default: conventional)
ARGS:
<FILEPATH> the path to search in
使用库
首先,将 Crates 添加到您的项目中(检查您想使用哪个版本,或者直接使用 * 使用最新版本)
# Cargo.toml
lrg = "0.3.0"
然后,在项目顶部添加 extern create lrg
。
要查找目录中的最大文件
use std::path::Path;
use lrg::{Lrg, LrgOptions, DirEntry, SortBy};
// Get a path to some directory (or file)
let path = Path::new("./some/path");
// Create the Lrg object to store the entries
let mut lrg: Lrg = Lrg::new(path, &LrgOptions::default());
// Sort and get the entries
let mut entries: Vec<DirEntry> = lrg.sort_by(SortBy::Descending).get_entries();
// You can also call `sort_descending`
entries = lrg.sort_descending().get_entries();
// These calls mutate the underlying struct, so calling:
entries = lrg.get_entries();
// Will give you the same as the call before it
要查找目录中的最小文件
let path = Path::new("./some/other/path");
let mut lrg: Lrg = Lrg::new(path, &LrgOptions::default());
let entries: Vec<DirEntry> = lrg.sort_ascending().get_entries();
要使用自定义函数进行搜索
let path = Path::new("./another/path");
let mut lrg: Lrg = Lrg::new(path, &LrgOptions::default());
// Sort by filename (note: not the full path)
lrg.sort_by_custom(|a: &DirEntry, b: &DirEntry| {
a.file_name().cmp(b.file_name())
});
let entries: Vec<DirEntry> = lrg.get_entries();
依赖关系
~3–11MB
~107K SLoC