commit f60eae1a65b632894951c5694ed1c39aa81a56e4 Author: zlei9 Date: Sun Mar 29 08:22:49 2026 +0800 Initial commit with translated description diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..994468b --- /dev/null +++ b/SKILL.md @@ -0,0 +1,341 @@ +--- +name: filesystem +description: "高级文件系统操作,用于列出文件、搜索内容、批量处理和目录分析。支持递归搜索、文件类型过滤、大小分析和批量操作如复制/移动/删除。在需要列出目录内容、按名称或内容搜索文件、分析目录结构、执行批量文件操作或分析文件大小和分布时使用。" +--- + +# Filesystem Operations + +文件系统操作工具,提供目录列表、内容搜索、批量处理和目录分析功能。 + +## 快速开始 + +### 列出目录 +```bash +# 列出当前目录 +ls -la + +# 递归列出目录树 +find . -type f -name "*.md" | head -20 + +# 按类型过滤 +find . -type f \( -name "*.md" -o -name "*.txt" \) +``` + +### 搜索文件 +```bash +# 按名称搜索 +find . -name "*keyword*" + +# 按内容搜索 +grep -r "keyword" . --include="*.md" + +# 不区分大小写搜索 +grep -ri "keyword" . --include="*.md" +``` + +### 分析目录 +```bash +# 统计文件类型 +find . -type f -name "*.md" | wc -l + +# 查看目录大小 +du -sh . + +# 找出最大文件 +find . -type f -exec ls -lh {} \; | sort -k5 -h | head -10 +``` + +--- + +## 核心功能 + +### 1. 目录列表 + +**基础列表**: +```bash +ls -la # 详细列表 +ls -lh # 人类可读大小 +ls -lt # 按修改时间排序 +ls -R # 递归列表 +``` + +**高级列表**: +```bash +# 列出特定类型 +find . -type f -name "*.md" + +# 按深度列出 +find . -maxdepth 2 -type f + +# 排除特定目录 +find . -type f -not -path "*/node_modules/*" +``` + +--- + +### 2. 文件搜索 + +**按名称搜索**: +```bash +# 精确匹配 +find . -name "filename.md" + +# 模式匹配 +find . -name "*pattern*" + +# 大小写不敏感 +find . -iname "*pattern*" +``` + +**按内容搜索**: +```bash +# 基础搜索 +grep -r "keyword" . + +# 包含行号 +grep -rn "keyword" . + +# 只搜索特定文件 +grep -r "keyword" . --include="*.md" + +# 排除目录 +grep -r "keyword" . --exclude-dir=node_modules +``` + +**正则表达式搜索**: +```bash +# 使用正则 +grep -r "^## " . --include="*.md" + +# 多个关键词 +grep -r "key1\|key2" . + +# 行首/行尾 +grep -r "^关键词" . +grep -r "关键词$" . +``` + +--- + +### 3. 批量操作 + +**批量复制**: +```bash +# 复制特定类型 +find . -name "*.md" -exec cp {} backup/ \; + +# 复制到多个位置 +for file in *.md; do cp "$file" dir1/ && cp "$file" dir2/; done +``` + +**批量移动**: +```bash +# 移动特定文件 +find . -name "*.log" -exec mv {} logs/ \; + +# 按条件移动 +find . -type f -size +1M -exec mv {} large/ \; +``` + +**批量删除**: +```bash +# 删除特定类型 +find . -name "*.tmp" -delete + +# 删除空目录 +find . -type d -empty -delete + +# 删除旧文件 +find . -type f -mtime +30 -delete +``` + +**批量重命名**: +```bash +# 使用 rename 命令 +rename 's/old/new/' *.md + +# 添加前缀 +for file in *.md; do mv "$file" "prefix_$file"; done +``` + +--- + +### 4. 目录分析 + +**大小分析**: +```bash +# 总大小 +du -sh . + +# 各目录大小 +du -h --max-depth=1 . | sort -hr + +# 最大的文件 +find . -type f -exec ls -lh {} \; | sort -k5 -hr | head -10 +``` + +**文件类型统计**: +```bash +# 按扩展名统计 +find . -type f -name "*.md" | wc -l + +# 各类型统计 +find . -type f -name "*.*" | sed 's/.*\.//' | sort | uniq -c +``` + +**目录结构分析**: +```bash +# 目录树 +tree -L 2 + +# 递归深度 +find . -type d | wc -l + +# 文件分布 +find . -type f | cut -d/ -f1-2 | sort | uniq -c +``` + +--- + +### 5. 文件信息查询 + +**文件详情**: +```bash +# 完整信息 +stat filename + +# 只看大小 +ls -lh filename + +# 只看时间 +ls -lt filename +``` + +**文件内容预览**: +```bash +# 头部 +head -20 filename + +# 尾部 +tail -20 filename + +# 随机行 +shuf -n 10 filename + +# 字符数 +wc -c filename + +# 行数 +wc -l filename +``` + +--- + +## 实用工具 + +### tree 命令 +```bash +# 安装 +brew install tree + +# 使用 +tree -L 2 -I 'node_modules|__pycache__' +``` + +### fd 命令(快速查找) +```bash +# 安装 +brew install fd + +# 使用 +fd "pattern" /path +fd -e md . # 只找 md 文件 +fd -t f . # 只找文件 +``` + +### ripgrep 命令(快速搜索) +```bash +# 安装 +brew install ripgrep + +# 使用 +rg "keyword" . +rg -t md "keyword" . +rg -i "keyword" . # 不区分大小写 +rg --type md "pattern" . +``` + +--- + +## 最佳实践 + +### 1. 搜索优化 +- 使用 `fd` 或 `ripgrep` 替代 `find` 和 `grep`(更快) +- 先缩小搜索范围,再进行深度搜索 +- 使用文件类型过滤减少搜索时间 + +### 2. 批量操作安全 +- 操作前先用 `--dry-run` 查看会发生什么 +- 批量删除前先列出文件确认 +- 重要操作前先备份 + +### 3. 目录分析 +- 使用 `-max-depth` 限制递归深度 +- 使用 `-size` 过滤大文件 +- 使用 `-mtime` 按时间筛选 + +--- + +## 常见任务 + +### 查找并处理 Markdown 文件 +```bash +# 查找所有 md 文件 +find . -name "*.md" -type f + +# 统计 md 文件数量 +find . -name "*.md" | wc -l + +# 列出最大的 md 文件 +find . -name "*.md" -exec ls -lh {} \; | sort -k5 -hr | head -5 +``` + +### 搜索并替换内容 +```bash +# 搜索所有匹配项 +grep -rn "old_text" . --include="*.md" + +# 替换(使用 sed) +find . -name "*.md" -exec sed -i '' 's/old_text/new_text/g' {} \; +``` + +### 清理临时文件 +```bash +# 删除 .tmp 文件 +find . -name "*.tmp" -delete + +# 删除空目录 +find . -type d -empty -delete + +# 删除 30 天前的日志 +find . -name "*.log" -mtime +30 -delete +``` + +--- + +## 安全提醒 + +⚠️ **批量操作前先确认**: +- 列出要操作的文件 +- 确认不会误删重要文件 +- 考虑先备份 + +⚠️ **删除操作不可逆**: +- `rm` 删除后无法恢复 +- 大批量删除前仔细检查 +- 考虑使用 `rm -i` 交互式删除 + +⚠️ **权限注意**: +- 某些操作可能需要 sudo +- 系统目录操作要谨慎 +- 考虑文件权限问题 diff --git a/_meta.json b/_meta.json new file mode 100644 index 0000000..cbdc5ac --- /dev/null +++ b/_meta.json @@ -0,0 +1,6 @@ +{ + "ownerId": "kn77fk7y6t89644qd6k3dtck25810qgg", + "slug": "filesystem", + "version": "1.0.0", + "publishedAt": 1770898043082 +} \ No newline at end of file