`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
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 上,要么检测到解析的tree是tree.com(其输出和标志不同),然后回退到 rtk 的自己的遍历器中,要么在 Windows 上完全跳过外部工具。tool_exists匹配一个与之无关的同名程序值得在其他命令中检查 —find和sort在 Windows 上也有同名的内置程序。
内容来源: rtk-ai/rtk