本仓库包含常用的辅助脚本工具,适用于 macOS 和 Linux 发行版。
递归解压多层嵌套的压缩文件。
功能:自动检测并递归解压各种格式的压缩文件
使用方法:
# 解压当前目录
./recursive_extract.sh
# 解压指定目录
./recursive_extract.sh /path/to/archives
# 显示详细日志
./recursive_extract.sh -v /path/to/archives
# 限制最大递归深度
./recursive_extract.sh /path/to/archives 5支持格式:
- ZIP (
.zip) - TAR (
.tar) - GZIP (
.gz,.tar.gz,.tgz) - XZ (
.xz,.tar.xz) - BZIP2 (
.bz2,.tar.bz2)
功能特性:
- 智能格式检测:基于 MIME 类型,不依赖文件扩展名
- 多层嵌套处理:自动处理
.tar.gz等多层压缩 - 循环解压:持续扫描直到没有新的压缩文件产生
- 自动清理:解压完成后删除中间压缩文件(保留原始输入文件)
- 详细日志:记录所有操作到日志文件
- 统计信息:显示解压成功/失败数量、耗时、最终文件统计
选项说明:
-v, --verbose:显示详细日志(默认只显示警告和错误)-h, --help:显示帮助信息
使用示例:
# 场景1:解压网络设备快照(含多层嵌套)
./recursive_extract.sh snapshot.tar.gz
# 场景2:批量处理整个目录
./recursive_extract.sh -v /data/archives 10
# 场景3:只处理当前目录,不递归子目录
./recursive_extract.sh . 1注意事项:
- 解压过程中会删除中间生成的压缩文件(原始输入文件除外)
- ZIP 文件会解压到同名子目录
- 详细日志自动保存为
extraction_YYYYMMDD_HHMMSS.log
用于导入和管理 VS Code Copilot Chat 会话。
功能:一键管理 Copilot Chat 会话 - 支持导入和重建索引
使用方法:
# 导入单个会话文件
./manage-copilot-sessions.sh <会话JSON文件路径>
# 重建所有会话索引
./manage-copilot-sessions.sh功能特性:
-
导入模式(提供参数):
- 复制会话文件到目标工作区
- 更新会话文件添加必需字段(sessionId, creationDate, customTitle等)
- 自动更新索引
- 验证导入结果并自动修复索引
-
重建模式(无参数):
- 扫描 chatSessions 目录下的所有会话文件
- 检测索引中缺失的会话并添加
- 为所有会话添加新版 VS Code 所需的字段
- 适用于批量修复、索引损坏等场景
注意事项:
- VS Code 运行时会缓存数据库,关闭时会覆盖外部修改
- 操作完成后重启 VS Code 即可看到会话
- 关闭所有 VS Code 窗口
- 运行导入命令:
./manage-copilot-sessions.sh /path/to/session.json
- 重启 VS Code
- 关闭所有 VS Code 窗口
- 运行重建命令:
./manage-copilot-sessions.sh
- 重启 VS Code
VS Code 在运行时会:
- 将数据库加载到内存缓存
- 外部脚本修改数据库(写入成功)
- VS Code 关闭时用旧的缓存覆盖数据库 → 修改丢失
索引中需要的字段 (state.vscdb):
- sessionId
- title
- lastMessageDate
- timing (startTime, endTime)
- initialLocation
- hasPendingEdits
- isEmpty
- isExternal
- lastResponseState
会话文件需要的字段 (chatSessions/*.json):
- sessionId
- creationDate
- lastMessageDate
- customTitle
- hasPendingEdits
- inputState
- version
- responderUsername
- initialLocation
原因:VS Code 在运行时覆盖了索引
解决:关闭 VS Code,运行 ./manage-copilot-sessions.sh
解决:运行 ./manage-copilot-sessions.sh 自动扫描并添加
解决:脚本会自动创建备份文件(.backup.日期时间),可从备份恢复
- bash
- jq (JSON 处理)
- sqlite3 (数据库操作)
- python3 (URL 解码)
工作区目录/
├── state.vscdb # VS Code 状态数据库
├── chatSessions/ # 会话文件目录
│ ├── <sessionId>.json
│ └── ...
└── workspace.json # 工作区配置