360 Secure SkillHub
360 安全技能中心

archive-extractor

该 Skill 通过 Python 脚本递归解压文件或目录中的 zip、tar、gz、rar、7z 等压缩包,支持批量处理、嵌套归档、强制重解和自定义输出目录;已解压项会跳过,损坏归档记录失败后继续,rar/7z 依赖首次使用时自动安装。

qiliangzhao20241028
qiliangzhao20241028
热度 63.40
最近更新 2026-05-18 12:19:40
分类:效率依赖:代码执行 / 读写文件应用场景:文件转换 / 工作流 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add archive-extractor
Metadata
name
archive-extractor
description
Recursively extract archive files from a file or directory. Supports zip, tar, tar.gz, tar.bz2, tar.xz, tgz, rar, 7z, gz, bz2, xz. Works on Windows, Linux, macOS — requires only Python 3.8+, no local software. Use when the user wants to "unzip", "unpack", "extract", or "decompress" archives, especially for bulk extraction, nested archives, or when idempotent re-runs are needed.

Archive Extractor

Extracts archives recursively using scripts/extract.py.

Zero local-software dependency — works on any machine with Python 3.8+.
.rar and .7z formats use pure-Python libraries (rarfile, py7zr) that are auto-installed on first use via pip. No 7-Zip, WinRAR, or unrar binary needed.

How to run

python scripts/extract.py <PATH> [OPTIONS]

Always use the absolute path to the script when calling from a different working directory:

# Windows
python "C:\Users\<user>\.workbuddy\skills\archive-extractor\scripts\extract.py" "<PATH>"

# Linux / macOS
python ~/.workbuddy/skills/archive-extractor/scripts/extract.py "<PATH>"

Options

Flag Description
-f / --force Re-extract even if a .extracted_success marker already exists
-d DIR / --dest DIR Write all output under a custom root directory

Supported formats

Format Backend
.zip Python stdlib zipfile
.tar .tar.gz .tar.bz2 .tar.xz .tgz .tbz2 Python stdlib tarfile
.gz .bz2 .xz (single-file) Python stdlib gzip / bz2 / lzma
.rar rarfile (pure-Python, auto-installed)
.7z py7zr (pure-Python, auto-installed)

Key behaviours

  • Idempotent: skips archives that already have a .extracted_success marker; use -f to override.
  • Recursive: after extracting an archive, immediately scans the output for nested archives (up to 20 levels deep).
  • Auto-deps: rarfile and py7zr are installed automatically via pip on first use — no manual setup needed.
  • Fault-tolerant: corrupted or unsupported archives are logged as [FAIL] and skipped; remaining archives continue.

Examples

# Extract everything in a directory (including sub-archives)
python extract.py "D:\jira\TICKET-123"

# Force clean re-extraction of a single file
python extract.py report.zip -f

# Extract to a separate output folder
python extract.py "D:\jira\TICKET-123" -d "D:\extracted"

# Glob pattern — extract all zips in current directory
python extract.py "*.zip"