New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

dsh-fs-inspector

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dsh-fs-inspector

Filesystem inspector plugin for DeepSeek Harness: directory size aggregation with Top-N subdirectories/files, recently modified files with relative-time filters. Read-only, no symlink traversal. Zero runtime dependencies.

latest
npmnpm
Version
0.2.0
Version published
Weekly downloads
16
300%
Maintainers
1
Weekly downloads
 
Created
Source

dsh-fs-inspector

DeepSeek Harness 文件系统巡检插件:目录体积统计(Top N 子目录 / 大文件,支持 depth 下钻层数)、最近修改文件查询(可按文件类型 / git 作者分组)与目录体积对比(定位“谁把目录撑大了”)。子目录并发遍历,只读、零运行时依赖。

  • 源码:https://github.com/geeklei/dsh-plugins/tree/main/dsh-fs-inspector
  • npm:https://www.npmjs.com/package/dsh-fs-inspector

安装

npm install dsh-fs-inspector

使用说明

dir_size —— 目录体积统计

递归统计目录的总大小、文件数、子目录数,并按大小列出 Top N 子目录或大文件。

用户:看看 E:\projects 里哪些目录最占空间

目录:E:\projects
总大小:2.31 GB(2478567424 字节)
文件数:18234,子目录数:1204
下钻层数:不限
忽略目录:.git

Top 10 子目录(按聚合大小):
  1.   1.42 GB  目录  frontend\node_modules
  2.   512.10 MB  目录  backend\target
  ...

参数:

参数说明
path目录路径,默认当前目录
topTop N,默认 10,上限 100
modedirs(子目录,默认)/ files(大文件)/ both
depth下钻层数(v0.2):0(默认,不限)或 1–20,N 表示最多进入 N 层子目录,更深的子目录跳过不计并提示
ignore忽略的目录名,逗号分隔,默认 .git;传空字符串表示不忽略任何目录

recent_files —— 最近修改文件

按修改时间倒序列出文件,支持时间范围与扩展名过滤。

用户:这个目录里最近 3 天改过哪些 markdown 文件

目录:E:\projects\docs
匹配文件:7 个(since 3d)(扩展名 .md)

最近修改的 7 个文件:
  1. 2026-09-21T02:14:33.000Z    12.30 KB  guide/setup.md
  2. 2026-09-20T11:02:10.000Z     4.10 KB  README.md
  ...

参数:path、limit(默认 20,上限 200)、since(7d / 12h / 30m / 2w 或 ISO 时间 2026-09-01)、extensions(如 .md,.js)、group(none 默认 / type / author)、ignore。

分组统计(v0.2):group=type 按扩展名聚合(文件数 / 总体积 / 最近修改);group=author 按 git 作者聚合(需 git 仓库,用一次 git log 取每个文件的最近提交作者;未提交文件归入 (未提交);非 git 目录自动回退为类型分组并提示)。

用户:这周的改动按作者统计一下

recent_files(path="E:\\projects", since="7d", group="author")

du_compare —— 目录体积对比(v0.2 新增)

按相对路径对比两个目录(如备份 vs 现状、旧导出 vs 新导出)的体积差异,输出总量变化与体积增减 Top N,回答“谁把目录撑大了”。

用户:新版本比旧备份多了 500MB,到底多了什么

du_compare(before="D:\\backup\\proj-old", after="E:\\projects\\proj", top=5)
基准总量:1.20 GB(文件 18234 个)
目标总量:1.68 GB(文件 19020 个)
总量变化:+488.2 MB(+39.7%)
条目变化:新增 812、删除 26、体积变化 134、无变化 17262

Top 5 体积增加:
  +312.4 MB  frontend\dist\bundle.js(新增)
   +96.1 MB  backend\target\app.jar
  ...
Top 5 体积减少:
   -12.3 MB  old\cache.dat(删除)

参数:

参数说明
before对比基准目录路径(必填)
after对比目标目录路径(必填)
top增减 Top N,默认 10,上限 100
levelfiles(文件级,默认)/ dirs(子目录聚合级)
depth两侧统一的下钻层数,0(默认)或 1–20
ignore忽略的目录名,逗号分隔,默认 .git

典型场景

1. 磁盘占用排查

用户:C 盘这个项目怎么这么大,帮我看看

用 dir_size 的默认 dirs 模式定位到 node_modules / target / 构建产物目录,再对可疑目录单独跑一次 dir_size 逐层下钻。

2. 清理前的影响面评估

用户:我想删掉 dist 目录,先看看它多大、里面有多少文件

dir_size 输出子目录聚合大小与总文件数,删除前先确认规模(本插件只统计不删除)。

3. 最近改动巡检 / 日报素材

用户:这周我改了哪些文件

recent_files 传 since=7d,按 mtime 倒序得到改动清单,可作为周报依据。

4. 构建产物新鲜度检查

用户:dist 是不是过期了,比源码旧?

对源码目录与 dist 目录分别跑 recent_files,对比最新 mtime 判断产物是否落后于源码。

5. 谁把目录撑大了

用户:升级完依赖后仓库多了 300MB,帮我找出增量

du_compare(before=旧目录, after=现目录, top=10) 直接给出总量变化与体积增减 Top N,新增/删除条目单独标注,不用肉眼对比两份扫描结果。

6. 本周改动按作者盘点

用户:统计一下这周各成员改了哪些文件

recent_files(since="7d", group="author") 按 git 作者聚合文件数与体积,适合周报与协作盘点。

7. 仓库体积体检

用户:仓库里有没有意外提交的大文件

dir_size 传 mode=files、ignore=(空,含 .git 目录)可看到最大文件排行,快速发现误提交的大文件。

安全边界

  • 只读:三个工具仅执行 readdir / stat / lstat 与只读 git log,不创建、不修改、不删除任何文件;测试中含"调用后目录内容与大小不变"的只读性断言。
  • 不跟随符号链接:目录扫描跳过软链接,避免环路死循环与越出指定目录范围的遍历。
  • 规模上限:单次扫描最多 20 万条目,超出即截断并在输出中标注 ⚠,防止超大目录导致长时间占用。
  • 无权限静默降级:遇到 EACCES/EPERM 的子目录跳过并在条目中标注,不中断整体统计。
  • 不读取文件内容:只读取元数据(大小、mtime),不打开文件,不涉及敏感内容泄露。

其他插件集成说明

协作插件集成方式
dsh-table-render把 dir_size 的 Top N 输出整理为数据后渲染成对齐表格(含中文目录名)
dsh-hash-checksum对 dir_size / recent_files 定位到的大文件进一步计算 sha256,用于校验或去重判断
dsh-file-search(二期 D10)dir_size 先定位大目录,再用 file-search 在目标范围内做内容检索,缩小搜索面
dsh-folder-tree(二期 D9)体积统计与目录树结构展示互补:一个看"多大",一个看"长什么样"
dsh-file-manager-cli本插件负责"看"(只读统计),实际移动/删除/重命名交给 file-manager-cli
dsh-workspace-journal把巡检结果(体积变化、最近改动)写入工作区日志,形成长期趋势记录

版本说明

  • 0.2.0(2026-10-17):按 RoadMap v0.2 迭代。
    • dir_size 新增 depth:限制下钻层数(1–20),更深子目录跳过不计并在输出中标注
    • 新增 du_compare:两个目录按相对路径对比,输出总量变化、新增/删除/变化计数与体积增减 Top N,支持 level=files|dirs
    • recent_files 新增 group:按文件类型或 git 作者分组统计(作者分组需 git,非 git 目录自动回退类型分组)
    • 大目录扫描并发化(子目录并发遍历,并发度 8,结果与串行一致)
  • 0.1.0(2026-09-21):初始版本。
    • dir_size:递归体积统计 + Top N 子目录/大文件、ignore 名单、20 万条目截断保护
    • recent_files:mtime 倒序 + since 相对时长(d/h/m/w)/ ISO 时间 + 扩展名过滤
    • 只读保证、软链接跳过、无权限降级

RoadMap

v0.2(已落地于 0.2.0)

  • dir_size 增加 depth 参数,限制下钻层数
  • 新增 du_compare:两次扫描结果对比,输出体积增减 Top N(定位"谁把仓库撑大了")
  • recent_files 支持按作者(需 git)或按文件类型分组统计
  • 大目录扫描并发化,缩短超大目录耗时

v0.3(展望)

  • 体积快照落盘 + 趋势报告(与 workspace-journal 联动)
  • 重复文件检测(按 size + 前缀哈希预筛,再全量哈希确认)
  • 排除规则支持 glob 模式(当前仅按目录名精确匹配)

FAQ

Q:为什么默认忽略 .git? .git 内部对象文件多且体积大,通常不是排查目标。需要统计时传 ignore=(空字符串)即可包含。

Q:node_modules 为什么没被默认忽略? 因为排查"目录为什么这么大"时,node_modules 往往正是答案。它体积大但可重建,本插件如实统计,是否清理由你决定。

Q:软链接目录里的文件为什么没统计到? 为避免环路与越界遍历,扫描跳过所有符号链接。这是刻意的安全取舍。

Q:since 的 m 是月还是分钟? 分钟(30m = 30 分钟);周用 w(2w = 2 周)。月份请用 ISO 时间表达。

Q:扫描很慢/结果不完整? 单次上限 20 万条目,超出会标注 ⚠ 并给出部分结果。建议缩小 path 范围、用 depth 限层,或对子目录分别扫描。子目录自 v0.2 起并发遍历,超大目录耗时明显缩短。

Q:du_compare 能对比同一目录的两个时间点吗? 当前版本对比的是两个目录(如备份 vs 现状)。同一目录的时点快照与趋势报告在 v0.3 的“体积快照落盘”里规划。

Q:group=author 为什么变成了文件类型分组? 作者分组依赖 git 仓库与 git 命令:目标目录不在 git 仓库内(或未安装 git)时会自动回退为类型分组并在输出中提示。未提交的新文件归入 (未提交)。

Q:能帮我删除大文件吗? 不能,本插件严格只读。删除请使用 dsh-file-manager-cli 并自行确认影响。

源码与发布地址

许可证

MIT

Keywords

dsh

FAQs

Package last updated on 17 Oct 2026

Related posts