name: file-organizer description: | 基於 AI 語義分析的智慧檔案整理技能,根據檔案內容動態建立 Johnny Decimal 分類。
當用戶提到以下內容時觸發: - "整理檔案"、"分類檔案"、"組織下載"、"檔案歸檔" - "檔案太多了"、"下載資料夾很亂"、"檔案亂七八糟" - "把檔案按類別整理"、"自動分類檔案" - "清理下載資料夾"、"整理文件" - "檔案管理"、"檔案分類整理" - 提到需要將檔案從一個目錄移動到另一個目錄進行分類
核心功能: - AI 分析檔名語義,動態生成分類 - 使用 Johnny Decimal 編號系統(XX.YY 格式) - 自動檢測重複檔案(MD5 演算法) - 使用者確認分類計劃後再執行 version: 1.0.0 allowed-tools: Bash, AskUserQuestion, Task author: Claude Code
基於 AI 語義分析的智慧檔案整理技能,根據檔案內容動態建立分類。
| 特性 | 說明 |
|---|---|
| 分類方式 | AI 分析檔名語義,動態生成分類 |
| 互動模式 | AskUserQuestion 詢問源/目標目錄 |
| 使用者確認 | 顯示分類計劃後等待確認 |
| 目標優先 | 優先使用目標目錄現有分類 |
| 重複檢測 | 使用 MD5 演算法自動檢測重複檔案 |
本技能通過自然語言觸發,你可以用多種方式描述需求:
示例: - "把我的 Downloads 資料夾整理到 Documents/Archives" - "我的下載資料夾太亂了,幫我按類別整理一下" - "整理這些檔案:~/Downloads → ~/Documents/Organized" - "清理下載資料夾,把檔案按型別分類"
如果需要指定特定目錄:
- 可以在對話中直接提供路徑
- 技能會通過 AskUserQuestion 詢問源目錄和目標目錄
- 支援絕對路徑和相對路徑(如 ~/Downloads, ./files)
本技能使用 Johnny Decimal 編號系統進行檔案分類。詳細規範請參考:references/johnny_decimal.md
核心要點:
- 使用 XX.YY 格式的分類編號(如 01-01, 10-05)
- 主編號按主題領域遞增(如 01-XX 技術類,02-XX 商業類)
- 子編號在同一領域內按順序遞增
- 分類命名格式:編號_類別名稱
快速示例:
01-01_人工智慧技術 # 技術領域
01-02_網路安全 # 技術領域
01-03_程式設計開發 # 技術領域
02-01_金融經濟 # 商業領域(新主題,主編號遞增)
02-02_消費零售 # 商業領域
檢查使用者是否提供了源目錄和目標目錄引數。
使用 AskUserQuestion 詢問使用者,提供常用目錄選項。
使用 AskUserQuestion 詢問使用者,提供常用目錄選項。
7w4.net小蔥技能站收錄全網優質技能,值得收藏。
ls -la "$target"
ls -1 "$source"
. 開頭)如果目標目錄有分類:將檔案匹配到現有分類
如果目標目錄無分類:AI 分析所有檔名,動態建立分類
重要:生成的分類名稱必須帶編號字首,格式為 編號_類別名稱
- 編號使用 Johnny Decimal 格式:01-01, 01-02, 02-01, 10-05 等
- 編號與類別名稱之間用下劃線 _ 分隔
- 類別名稱可以使用中文或英文,允許包含下劃線
編號遞增規則(關鍵):
- 主分類編號(第一部分):根據主題領域遞增
- 同一大類主題下的所有子分類共享相同的主分類編號
- 例如:所有技術相關用 01-XX,所有商業相關用 02-XX,所有行業相關用 03-XX
- 每個主分類編號最多包含 99 個子分類(01-01 到 01-99)
- 當發現不同的主題領域時,必須遞增主分類編號
- 子分類編號(第二部分):在同一主題領域內按順序遞增(01, 02, 03...)
示例:
01-01_人工智慧技術 # 技術領域
01-02_網路安全 # 技術領域
01-03_程式設計開發 # 技術領域
02-01_金融經濟 # 商業領域(新主題,主編號遞增)
02-02_消費零售 # 商業領域
02-03_商業管理 # 商業領域
03-01_教育培訓 # 行業領域(新主題,主編號再遞增)
03-02_醫療健康 # 行業領域
分類原則: - 根據檔名的語義相似性分組 - 先識別主題領域(技術/商業/行業/娛樂等),再細分具體類別 - 分類名稱簡潔明瞭(中文或英文) - 每個分類包含相關聯的檔案 - 優先識別常見模式(程式碼、文件、圖片、壓縮包等)
根據步驟 6 生成的分類,向用戶展示整理計劃。
顯示策略:
- 檔案總數 ≤ 30:顯示完整檔案列表(當前模式)
- 檔案總數 > 30:智慧摘要模式
- 顯示:分類名稱 + 檔案數量 + 前 3 個代表性檔案
- 提供:[展開檢視全部] 選項
統計檔案總數(Bash):
total_files=$(ls -1 "$source" | wc -l | tr -d ' ')
示例格式(使用實際變數):
模式 A:完整列表(≤30 個檔案)
📁 源目錄: $source (13 個檔案)
📂 目標目錄: $target (新建分類)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 01-01_學習資料 (3 files)
├── 學習筆記Python.pdf
├── 課程影片.mp4
└── 教程.md
💻 01-02_程式碼專案 (2 files)
├── React元件.tsx
└── script.py
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
模式 B:智慧摘要(>30 個檔案)
📁 源目錄: $source (127 個檔案)
📂 目標目錄: $target (新建分類)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 01-01_學習資料 (45 files) [展開檢視全部]
├── 學習筆記Python.pdf
├── 課程影片.mp4
└── 教程.md
... 還有 42 個檔案
💻 01-02_程式碼專案 (38 files) [展開檢視全部]
├── React元件.tsx
├── script.py
└── index.html
... 還有 35 個檔案
📦 01-03_壓縮備份 (44 files) [展開檢視全部]
├── backup.zip
├── archive.tar.gz
└── documents.7z
... 還有 41 個檔案
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 提示:檔案數量較多,顯示為智慧摘要模式
注意: 顯示時使用實際的 $source 和 $target 變數值,不要硬編碼路徑。
使用 AskUserQuestion 詢問是否執行:
選項: - 確認執行 - 按照上述分類計劃移動檔案 - 展開檢視全部 - 顯示完整的檔案列表(適用於摘要模式) - 調整分類 - 修改某些檔案的分類 - 取消操作 - 放棄本次整理
必須等待使用者確認後才能執行移動操作
模式切換說明:
- 如果使用者在摘要模式下選擇"展開檢視全部",重新以完整列表模式顯示步驟 7
- 再次確認時,展開檢視全部 選項替換為 返回摘要模式
根據步驟 6 生成的分類,動態建立目錄。
格式: $target/編號_類別名稱
示例(根據實際分類動態建立):
# 假設 AI 生成的分類為:
# - 01-01_Claude相關
# - 01-02_AI綜合應用
# - 01-03_程式碼專案
mkdir -p "$target/01-01_Claude相關"
mkdir -p "$target/01-02_AI綜合應用"
mkdir -p "$target/01-03_程式碼專案"
注意: 必須使用 $target 變數,不要硬編碼路徑。
使用 Bash 命令批次移動檔案到對應分類目錄。
在移動檔案完成後,檢查目標目錄是否存在重複檔案。
# 呼叫 Python 指令碼檢查重複檔案
python3 scripts/check_duplicates.py "$target"
指令碼輸出示例:
🔍 重複檔案檢查報告
============================================================
📂 目標目錄: /Users/user/Documents/Archives
📄 總檔案數: 45
✅ 唯一檔案: 42
🔄 重複組數: 1
⚠️ 發現以下重複檔案:
MD5: a1b2c3d4e5f6...
大小: 1,234,567 位元組
✅ 保留: 01-01_學習資料/document.pdf
時間: 2025-02-10 14:30:00
🗑️ 重複: 01-02_程式碼專案/document.pdf
時間: 2025-02-15 09:20:00
處理重複檔案(如果發現重複):
使用 AskUserQuestion 詢問使用者處理方式:
選項: - 自動刪除重複檔案(保留每組最早建立的檔案) - 保留所有檔案(不做任何修改) - 檢視詳細報告(顯示完整 JSON 報告)
如果選擇自動刪除:
python3 scripts/check_duplicates.py "$target" --delete
刪除策略: - 每個 MD5 組保留修改時間最早的檔案 - 刪除其餘重複檔案 - 顯示刪除檔案數和釋放空間
如果選擇保留所有: - 跳過此步驟,繼續流程
如果未發現重複檔案: - 顯示 "✨ 未發現重複檔案!" - 直接繼續下一步
# 檢查源目錄是否清空
ls -1 "$source" | wc -l
# 顯示各分類檔案數
echo ""
echo "📊 分類統計:"
for dir in "$target"/*/; do
dir_name=$(basename "$dir")
echo " $dir_name"
done
. 開頭)這個 Skill 質量不錯,能幫你把亂糟糟的檔案自動按類別整理好。它最大的亮點是引入了 Johnny Decimal 編號系統,分類一目瞭然,還支援中文檔名。操作流程很完善,從掃描檔案到分類、再到確認執行、最後檢測重複檔案,整個過程都有考慮。不過使用前最好先備份一下檔案,而且文件裡有些地方說法不太一致,初次使用可能需要仔細看一下說明。