MAC桌面清理的小脚本

发一个桌面清理的小脚本,放在桌面的scripts目录下,双击一下可以把mac桌面杂七杂八的文件全部丢到桌面的trash目录下。代码也是ai写的,ai果然无敌了

#!/usr/bin/env bash
# 文件名:clean_desktop.sh
# 用途  :把桌面文件移到 ~/Desktop/Trash,自动去重命名

set -euo pipefail         # 出错即停,捕获未定义变量
shopt -s nullglob         # 如果 glob 无匹配,不保留原样字符串

DESKTOP="$HOME/Desktop"
TRASH="$DESKTOP/Trash"

# 若 Trash 文件夹不存在就创建
mkdir -p "$TRASH"

# 遍历桌面上一层(含隐藏文件)
for item in "$DESKTOP"/* "$DESKTOP"/.[!.]* "$DESKTOP"/..?*; do
  [[ ! -e "$item" ]] && continue            # 跳过不存在的 glob
  name=$(basename "$item")

  # 排除自身和 Scripts
  case "$name" in
    "."|".."|"Scripts"|"Trash") continue ;;
  esac

  target="$TRASH/$name"

  # 若 Trash 中已存在同名项,递增编号
  if [[ -e "$target" ]]; then
    # 拆分扩展名(仅对普通文件;目录保持整体)
    if [[ -f "$item" && "$name" == *.* ]]; then
      base="${name%.*}"
      ext=".${name##*.}"
    else
      base="$name"
      ext=""
    fi

    i=1
    while [[ -e "$TRASH/${base}-${i}${ext}" ]]; do
      ((i++))
    done
    target="$TRASH/${base}-${i}${ext}"
  fi

  mv "$item" "$target"
done

shopt -u nullglob         # 恢复默认行为
echo "✅ Done: 所有桌面文件已移动到 ~/Desktop/Trash"

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注