#3434·rtk

`rtk ls` 会默默地跳过 build/dist/target/coverage/venv/node_modules 目录 — 不计数,不标记 — `rtk tree` 会将 Unix 标志传递给 Windows 的 `tree.com`,并报告"不存在子目录"作为成功结果

作者: HetCreep创建于 2026年8月4日更新于 2026年9月16日
标签bugpriority:higharea:cliplatform:windows
  1. rtk ls 隐藏目录而不说出来 rtk 与真实工具相比,有两个发现。 * 来源: AI 辅助的源代码审计,由人员指导,在 v0.44.2(700bdde) 中完成。两者均在 Windows 上使用随附的二进制文件重现;输出完全相同。 2. rtk tree 在 Windows 上调用 tree.com 并带有 Unix 标志 这两个发现都来自 rtk find 的隐藏路径过滤。 rtk find 使用 NOISE_DIRS 过滤,而 rtk tree 使用 walker 的 .hidden() 方法。 src/cmds/system/ls.rs:266 根据 NOISE_DIRS 过滤。隐藏 node_modules 目录是一个合理的默认行为。没有标记就做不到这一点 — 读者会得出结论,构建尚未运行,venv 从未创建,或者 dist/ 不存在。这个结论是错误的,输出中没有任何提示。 与 rtk 在其他地方的行为相比,rtk find 的结果上限会打印 +450 more,而 rtk read 会打印 [N more lines]。这种约定存在;只是这个路径没有使用它。一行 — (6 个构建/工具目录被隐藏; -a 显示) — 将保留压缩并消除错误印象。 2. rtk tree 在 Windows 上调用 tree.com 并带有 Unix 标志 这两个发现都来自 rtk find 的隐藏路径过滤。 rtk find 使用 NOISE_DIRS 过滤,而 rtk tree 使用 walker 的 .hidden() 方法。 src/cmds/system/ls.rs:266 根据 NOISE_DIRS 过滤。隐藏 node_modules 目录是一个合理的默认行为。没有标记就做不到这一点 — 读者会得出结论,构建尚未运行,venv 从未创建,或者 dist/ 不存在。这个结论是错误的,输出中没有任何提示。 与 rtk 在其他地方的行为相比,rtk find 的结果上限会打印 +450 more,而 rtk read 会打印 [N more lines]。这种约定存在;只是这个路径没有使用它。一行 — (6 个构建/工具目录被隐藏; -a 显示) — 将保留压缩并消除错误印象。 2. 在 Windows 上,要么检测到解析的 treetree.com(其输出和标志不同),然后回退到 rtk 的自己的遍历器中,要么在 Windows 上完全跳过外部工具。 tool_exists 匹配一个与之无关的同名程序值得在其他命令中检查 — findsort 在 Windows 上也有同名的内置程序。