4 个版本 (重大更改)
0.3.0 | 2020 年 7 月 15 日 |
---|---|
0.2.0 | 2020 年 7 月 12 日 |
0.1.0 | 2020 年 7 月 10 日 |
0.0.1 | 2020 年 7 月 5 日 |
#779 in 文件系统
1MB
1.5K SLoC
包含 (rust 库, 1MB) tests/testfiles/find/librecurse.rlib, (rust 库, 1MB) tests/testfiles/contains/librecurse.rlib
recurse
跨平台的递归目录遍历文件管理工具
关于
recurse
可执行文件是一个跨平台的命令行文件管理工具,具有 默认 递归目录遍历和正则表达式模式匹配支持。它用 Rust 构建,并在 GNU/Linux、macOS 和 Windows 平台上针对稳定版、测试版和夜间版 Rust 工具链进行测试。
通过 recurse
可执行文件的子命令提供功能。当前支持包括
recurse contains
:识别与正则表达式模式匹配的 UTF-8 编码文本文件路径recurse find
:在有效的 UTF-8 编码文本文件中识别正则表达式模式匹配的行和字节偏移量recurse walk
:递归目录遍历文件列表
以下功能正在开发中
- [将在 v0.4.0 中推出]
recurse replace
:替换与正则表达式模式匹配的文本文件中的字符串(问题 #6) - [将在 v0.5.0 中推出] 为支持文本匹配的子命令添加可选的规范 Unicode 正规化支持(问题 #8)
有关更多信息,请参阅下方的 使用说明 部分。
有关常见问题的答案,请参阅 FAQ.md。
安装
从 crates.io 使用 cargo
使用 cargo
从 crates.io 安装 recurse
可执行文件
$ cargo install recurse
从存储库的主分支使用 cargo
克隆 Git 仓库,编译并使用以下命令安装可执行文件
$ git clone https://github.com/chrissimpkins/recurse.git
$ cd recurse
$ cargo install --path .
使用方法
使用以下语法在命令行中查看任何子命令的帮助文档
$ recurse [SUB-COMMAND] --help
帮助菜单显示可用选项和必需的参数。
递归目录遍历是所有子命令的默认行为。
contains
子命令
contains
语法
$ recurse contains [OPTIONS] [REGEX] [START PATH]
“contains”子命令的默认行为是列出所有包含一个或多个有效UTF-8编码Unicode标量值的文本文件路径,这些值与正则表达式模式匹配。默认情况下,隐藏路径会被排除,定义为以点号开头的目录或文件路径(例如,.hidden
目录或 .hidden.txt
文件)。隐藏目录下的所有目录和文件路径都被视为隐藏。目录遍历继续到用户指定的起始路径下,最大深度为[START PATH]
。
contains
选项
命令行选项会修改默认行为。contains
子命令支持以下选项
-a | --all
:包括隐藏文件和目录路径-e | --ext [EXTENSION]
:根据包含EXTENSION字符串的路径进行过滤。输入EXTENSION字符串参数以定义扩展名过滤器。EXTENSION参数可以带有或不带点号字符(例如,txt
或.txt
)--maxdepth [DEPTH]
:扩展文件系统子目录结构的最大深度。输入DEPTH的整数值以限制目录遍历。--mindepth [DEPTH]
:开始遍历文件系统子目录结构的最小深度。输入DEPTH的整数值以限制目录遍历。--symlinks
:跟随符号链接
find
子命令
find
语法
$ recurse find [OPTIONS] [REGEX] [START PATH]
find
子命令的默认行为是列出所有文本文件中与正则表达式模式匹配的、具有有效UTF-8编码Unicode标量值的行。报告包括文件中每行的以下数据
[FILEPATH] [LINE NUMBER]:[START BYTE OFFSET INDEX]-[END BYTE OFFSET INDEX] [ MATCHED STRING ]
以下是此存储库中正则表达式模式 [Rr]ecurse
的匹配结果示例
./src/command/find.rs 12:11-18 [ Recurse ]
请注意,当多字节编码字符在匹配字符串或其之前时,字节偏移量不会与“字符偏移量”一一对应。
默认情况下,隐藏路径会被排除,并定义为以点号开头的目录或文件路径(例如,.hidden
目录或 .hiddent.txt
文件)。隐藏目录下的所有目录和文件路径都被视为隐藏。目录遍历继续到用户指定的起始路径下,最大深度为[START PATH]
。
find
选项
命令行选项会修改默认行为。find
子命令支持以下选项
-a | --all
:包括隐藏文件和目录路径-e | --ext [EXTENSION]
:根据包含EXTENSION字符串的路径进行过滤。输入EXTENSION字符串参数以定义扩展名过滤器。EXTENSION参数可以带有或不带点号字符(例如,txt
或.txt
)--maxdepth [DEPTH]
:扩展文件系统子目录结构的最大深度。输入DEPTH的整数值以限制目录遍历。--mindepth [DEPTH]
:开始遍历文件系统子目录结构的最小深度。输入DEPTH的整数值以限制目录遍历。--symlinks
:跟随符号链接
walk
子命令
walk
语法
$ recurse walk [OPTIONS] [START PATH]
“walk”子命令的默认行为是在标准输出流中列出所有非隐藏的文件路径。隐藏路径被定义为以点号(例如,.hidden
目录或 .hidden.txt
文件)开头的目录或文件。所有位于隐藏目录路径下的目录和文件路径都被认为是隐藏的。目录遍历继续到用户指定的起始路径 [START PATH]
下的最大深度。
walk
选项
命令行选项会修改默认行为。walk
子命令支持以下选项:
-a | --all
:包括隐藏文件和目录路径-d | --dir
:仅筛选目录路径,不列出文件路径-e | --ext [EXTENSION]
:根据包含EXTENSION字符串的路径进行过滤。输入EXTENSION字符串参数以定义扩展名过滤器。EXTENSION参数可以带有或不带点号字符(例如,txt
或.txt
)--maxdepth [DEPTH]
:扩展文件系统子目录结构的最大深度。输入DEPTH的整数值以限制目录遍历。--mindepth [DEPTH]
:开始遍历文件系统子目录结构的最小深度。输入DEPTH的整数值以限制目录遍历。--symlinks
:跟随符号链接
贡献
请在 GitHub 问题跟踪器 上提交新问题。
欢迎在 Apache License,v2.0 下进行贡献。请提交一个包含您更改建议的 pull request。
许可协议
Apache License,v2.0。请参阅 LICENSE.md 以获取许可协议的完整文本。
依赖
~5–14MB
~149K SLoC