🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

desktop-organizer

by @hujxhed

桌面文件整理技能。当用户要求整理、清理或归类电脑桌面文件时,应使用本技能。它提供了标准化的安全操作流程,并根据预定义的分类规则将文件移动到对应文件夹。支持跨平台(macOS、Linux、Windows)。

Versionv1.0.0
Downloads745
TERMINAL
clawhub install desktop-organizer

📖 About This Skill


name: desktop-organizer description: 桌面文件整理技能。当用户要求整理、清理或归类电脑桌面文件时,应使用本技能。它提供了标准化的安全操作流程,并根据预定义的分类规则将文件移动到对应文件夹。支持跨平台(macOS、Linux、Windows)。

桌面文件整理技能

概述

本技能用于整理用户电脑桌面上的文件。整理前会自动备份,并按照预定义的分类规则将文件移动到指定目录。

跨平台支持:macOS、Linux、Windows


系统配置

在执行整理前,首先确定当前操作系统和桌面路径:

路径映射表

| 平台 | 桌面路径 | 备份路径前缀 | |------|----------|--------------| | macOS/Linux | ~/Desktop/ | ~/Desktop_Backup_ | | Windows | %USERPROFILE%\Desktop\ | %USERPROFILE%\Desktop_Backup_\ |

使用说明

  • ~ 表示用户主目录(macOS/Linux)
  • %USERPROFILE% 表示用户主目录(Windows)
  • 执行时需先运行以下命令获取实际路径

    # macOS/Linux
    DESKTOP_PATH="$HOME/Desktop"
    BACKUP_PREFIX="$HOME/Desktop_Backup_"

    Windows (PowerShell)

    $DESKTOP_PATH = "$env:USERPROFILE\Desktop" $BACKUP_PREFIX = "$env:USERPROFILE\Desktop_Backup_"


    使用前必读:安全规范

    整理桌面属于批量文件操作,存在不可逆风险。每次执行时必须严格遵守以下步骤:

    1. 备份桌面:在移动任何文件之前,先将桌面完整备份到 {BACKUP_PREFIX}<日期时间>/ 2. 执行整理:备份确认成功后,再按规则移动文件。 3. 验证结果:移动完成后,列出各目标文件夹内容供用户确认。

    > ⚠️ 绝对不允许跳过备份步骤。


    分类规则

    > 📝 填写说明:以下是规则模板,请按照注释提示填写你的实际规则。 > 每条规则格式:文件类型/名称特征 → 移动到哪个文件夹。

    > ⚠️ 跨平台路径表示: > - {DESKTOP_PATH} 表示桌面路径(自动适配) > - 例如:{DESKTOP_PATH}/文档/ 会自动解析为 ~/Desktop/文档/(Mac/Linux)或 %USERPROFILE%\Desktop\文档\(Windows)

    规则 0:文件夹分类

    | 类型 | 说明 | 移动到 | |------|------|--------| | 文件夹 | 桌面根目录下的所有文件夹(目标文件夹本身除外) | {DESKTOP_PATH}/文档/ |

    > ⚠️ 移动文件夹时,若目标位置已存在同名文件夹,遵循规则 4 的冲突处理策略(当前:跳过不移动)。


    规则 1:按文件类型分类(示例,可修改)

    | 文件类型 | 扩展名 | 移动到 | |-------|----------------------------------------------|---------------------------| | 图片 | .jpg .jpeg .png .gif .webp .heic | {DESKTOP_PATH}/文档/ | | 文档 | .pdf .doc .docx .txt .md | {DESKTOP_PATH}/文档/ | | 表格 | .xls .xlsx .csv | {DESKTOP_PATH}/文档/ | | 视频 | .mp4 .mov .avi .mkv | {DESKTOP_PATH}/文档/ | | 音频 | .mp3 .wav .flac .aac | {DESKTOP_PATH}/文档/ | | 压缩包 | .zip .rar .7z .tar .gz | {DESKTOP_PATH}/文档/ | | 安装包 | .dmg .pkg .exe | {DESKTOP_PATH}/文档/ | | 代码文件 | .py .js .ts .java .sh | {DESKTOP_PATH}/文档/ |


    规则 2:按文件名关键词分类(可选,不需要可删除)

    > 如果某些文件名包含特定关键词,优先按此规则处理,忽略规则 1。

    | 文件名包含关键词 | 移动到 | |---------------------|--------| | note.txt | {DESKTOP_PATH}/ |


    规则 3:特殊处理规则(可选)

    > 以下文件类型/名称不移动,保留在桌面。

    保留在桌面的文件:

  • note.txt
  • 最近 3 天内创建的文件不移动(填写:是 或 否):否

  • 规则 4:冲突处理

    当目标位置已存在同名文件时:

  • [x] 跳过不移动

  • 操作流程

    执行整理时,按以下顺序操作:

    第一步:检测系统并设置路径

    macOS/Linux

    OS="unix"
    DESKTOP_PATH="$HOME/Desktop"
    BACKUP_PREFIX="$HOME/Desktop_Backup_"
    

    Windows

    $OS = "windows"
    $DESKTOP_PATH = "$env:USERPROFILE\Desktop"
    $BACKUP_PREFIX = "$env:USERPROFILE\Desktop_Backup_"
    

    第二步:预检查

    # macOS/Linux
    ls -la "$DESKTOP_PATH/"

    Windows (PowerShell)

    Get-ChildItem -Path $DESKTOP_PATH | Select-Object Name, Length, LastWriteTime

    将扫描结果整理成表格展示给用户,包含:名称、类型(文件/文件夹)、大小、创建日期。

    > 💡 此步骤仅为展示,无需等待用户确认,直接继续后续步骤。

    第三步:备份桌面

    macOS/Linux

    BACKUP_DIR="${BACKUP_PREFIX}$(date +%Y%m%d_%H%M%S)"
    cp -r "$DESKTOP_PATH/" "$BACKUP_DIR"
    echo "备份完成:$BACKUP_DIR"
    

    Windows

    $BACKUP_DIR = "$BACKUP_PREFIX$(Get-Date -Format 'yyyyMMdd_HHmmss')"
    Copy-Item -Path "$DESKTOP_PATH\*" -Destination "$BACKUP_DIR" -Recurse
    Write-Host "备份完成:$BACKUP_DIR"
    

    备份成功后才可继续。

    第四步:创建目标文件夹

    在移动文件前,确保所有目标文件夹存在:

    macOS/Linux

    mkdir -p "{DESKTOP_PATH}/文档/"
    

    Windows

    if (-not (Test-Path "{DESKTOP_PATH}\文档")) {
        New-Item -ItemType Directory -Path "{DESKTOP_PATH}\文档"
    }
    

    > 注意:将 {DESKTOP_PATH} 替换为实际的桌面路径变量

    第五步:按规则移动文件

    参考上方分类规则,依次处理桌面上的每个条目: 1. 文件夹:先按规则 0 移动所有文件夹到目标目录(跳过目标文件夹自身,如 文档/) 2. 文件:先检查规则 2(关键词匹配),再检查规则 1(文件类型匹配) 3. 如果都不匹配,放入 {DESKTOP_PATH}/未分类/ 文件夹

    macOS/Linux 移动示例

    cd "$DESKTOP_PATH"
    

    移动文件夹

    for folder in "3D打印" "展会"; do if [ -d "$folder" ] && [ ! -d "文档/$folder" ]; then mv "$folder" "文档/$folder" fi done

    移动文件

    [ ! -e "文档/file.png" ] && mv file.png "文档/"

    Windows 移动示例

    cd $DESKTOP_PATH
    

    移动文件夹

    if (Test-Path "3D打印" -and -not (Test-Path "文档\3D打印")) { Move-Item "3D打印" "文档\" }

    移动文件

    if (-not (Test-Path "文档\file.png")) { Move-Item "file.png" "文档\" }

    第六步:验证并报告

    整理完成后,输出整理报告:

  • 总共处理了多少个文件
  • 各分类分别移动了多少个
  • 未分类文件列表(如有)
  • 备份位置
  • macOS/Linux

    echo "=== 桌面剩余内容 ==="
    ls -lh "$DESKTOP_PATH/"
    echo ""
    echo "=== 文档目录内容 ==="
    ls -lh "$DESKTOP_PATH/文档/"
    

    Windows

    Write-Host "=== 桌面剩余内容 ==="
    Get-ChildItem -Path $DESKTOP_PATH | Select-Object Name, Length
    Write-Host ""
    Write-Host "=== 文档目录内容 ==="
    Get-ChildItem -Path "$DESKTOP_PATH\文档" | Select-Object Name, Length
    


    其他配置项

    整理范围

  • [x] 只整理桌面根目录的文件(不进入子文件夹)
  • [ ] 递归整理桌面所有子文件夹内的文件
  • 空文件夹处理

  • [x] 整理后删除桌面上的空文件夹
  • [ ] 保留空文件夹
  • 整理后的桌面备份

  • [x] 保留备份(手动删除)
  • [ ] 整理确认无误后自动删除备份

  • 平台差异说明

    macOS/Linux 特有

  • 使用 ~ 表示用户主目录
  • 命令:ls, cp, mv, mkdir
  • 路径分隔符:/
  • Windows 特有

  • 使用 %USERPROFILE% 表示用户主目录
  • 命令:Get-ChildItem, Copy-Item, Move-Item(PowerShell)
  • 路径分隔符:\
  • 路径占位符

    在规则配置中使用 {DESKTOP_PATH} 占位符,执行时需替换为实际路径:
  • macOS/Linux: ~/Desktop
  • Windows: %USERPROFILE%\Desktop