#find #largest #file #smallest

bin+lib lrg

一个帮助在目录中查找最大文件的工具

3 个版本 (重大更新)

0.3.0 2018年12月25日
0.2.0 2018年11月18日
0.1.0 2018年11月17日

文件系统 中排名第 1462

MIT 许可证

25KB
286 代码行

lrg

一个帮助在目录中查找最大文件的工具

Linux build status Coverage Status

需求

构建二进制文件(仅在 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