#!/bin/bash
# 基本配置
SCRIPT_NAME="系统深度清理"
AUTHOR="seeker_ok"
ICON="/usr/share/icons/hicolor/48x48/apps/deepclean.png"
USER_HOME="${HOME}"  
PACKAGE_NAME="system-cleaning"
#设置终端窗口显示标题
echo -ne "\e]2;${SCRIPT_NAME} By:${AUTHOR}\a"

# 获取真实用户目录
USER_HOME=$(getent passwd ${SUDO_USER:-$USER} 2>/dev/null | cut -d: -f6)
if [[ -z "$USER_HOME" ]]; then
  echo "错误：无法确定用户主目录。"
  exit 1
fi
# 颜色定义 
RED='\033[0;31m' 
GREEN='\033[0;32m' 
YELLOW='\033[0;33m'
BLUE='\033[0;34m' 
NC='\033[0m'  # 重置颜色

# ====================== 功能函数 ======================
# 桌面通知与终端提示函数
notify() { 
    local title="$1" 
    local message="$2" 
    local level="$3" 
    local icon="${4:-}"  # 可选参数：图标路径

    # 终端输出样式
    case "$level" in
        "success") color="$GREEN"; urgency="normal" ;;
        "warning") color="$YELLOW"; urgency="normal" ;;
        "error")   color="$RED"; urgency="critical" ;;
        *)         color="$NC"; urgency="normal" ;;
    esac
    echo -e "\n${color}【$title】${message}${NC}"
    # 带图标和不带图标的两种调用方式
    if [[ -n "$icon" ]]; then
        notify-send -u "$urgency" -i "$icon" "$title" "$message" 2>/dev/null || true
    else
        notify-send -u "$urgency" "$title" "$message" 2>/dev/null || true
    fi
} 
# 优化图标路径检查
ICON_PATH="${ICON}"
[[ ! -f "$ICON_PATH" ]] && ICON_PATH=""  # 图标不存在时不显示

#=====【检测软件是否有新的版本】==========
GITEE_REPO="https://gitee.com/seeker_ok/${PACKAGE_NAME}"
LOCAL_VERSION=$(dpkg-query -W --showformat='${Version}' ${PACKAGE_NAME} 2>/dev/null)
# 获取远程版本号
REMOTE_CONTROL=$(curl -sL "${GITEE_REPO}/raw/master/DEBIAN/control")
REMOTE_VERSION=$(echo "$REMOTE_CONTROL" | grep 'Version:' | awk '{print $2}')
# 版本比较函数
version_compare() {
  if [ "$1" = "$2" ]; then
    return 0
  fi
  local IFS=.
  local i ver1=($1) ver2=($2)
  for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)); do
    ver1[i]=0
  done
  for ((i=0; i<${#ver1[@]}; i++)); do
    if [[ -z ${ver2[i]} ]]; then
      ver2[i]=0
    fi
    if ((10#${ver1[i]} > 10#${ver2[i]})); then
      return 1
    fi
    if ((10#${ver1[i]} < 10#${ver2[i]})); then
      return 2
    fi
  done
  return 0
}

if version_compare "$LOCAL_VERSION" "$REMOTE_VERSION"; then
  : # 本地版本与远程版本相同，不执行任何操作
elif [ $? -eq 1 ]; then
  echo -e "${wrong}本地版本 ${LOCAL_VERSION} 比远程版本 ${REMOTE_VERSION} 新${NC}"
else
  echo -e "${GREEN}发现${PACKAGE_NAME}有新版本 ${REMOTE_VERSION}，是否更新？[Yy/N]${NC}"
  read -p " " choice
  if [[ "$choice" = "y" || "$choice" = "Y" ]]; then
    DEB_URL="${GITEE_REPO}/raw/master/${PACKAGE_NAME}_${REMOTE_VERSION}_all.deb"
    x-terminal-emulator -e "bash -c \"
      echo -e '${GREEN}正在下载并安装新版本,请稍等...${NC}';
      wget -q ${DEB_URL} -O /tmp/${PACKAGE_NAME}.deb && 
      sudo apt install -y /tmp/${PACKAGE_NAME}.deb && 
      rm -rf /tmp/${PACKAGE_NAME}.deb;
      echo -e '${GREEN}软件已更新至 ${REMOTE_VERSION}，请关闭窗口重新运行${NC}';
      read -p $'${BLUE} 按任意键关闭此窗口...${NC}' \""
    exit 1
  fi
fi
#=====【检测软件是否有新的版本结束】==========

# 免责声明
notify "软件使用免责声明" "软件使用免责声明：本软件具备删除文件及文件夹功能，可能造成不可逆数据损失。
请在使用前仔细阅读以下条款，确认理解所有操作风险后方可继续使用，
您的使用行为将视为对本协议全部条款的认可与接受。
1.1、使用本软件前，用户应自行对重要文件进行备份，可能会导致数据丢失; 
1.2、本软件为免费开源程序，不提供任何形式的技术支持; 
1.3、因用户操作失误、未阅读提示、擅自修改程序等行为导致的数据损失，开发者不承担任何法律责任; 
1.4、使用本软件进行非法操作产生的后果由用户自行承担; 
1.5、本软件不能用于破坏计算机程序，只能在法律相关允许的条件下使用。" "error"  "$ICON_PATH"
 echo -e "\n${GREEN}请输入'Y/y'确认已阅读并接受：${NC}"
read -p "" agree
if [[ "$agree" != "y" && "$agree" != "Y" ]]; then
    notify "操作取消" "您未同意条款，已退出清理" "warning"
    exit 0
fi

# 模式选择
  echo -e "\n${GREEN}请选择操作模式：${NC}"
  echo -e "${GREEN}  [A]uto自动模式：无需确认，快速清理（适合熟练用户）${NC}"
  echo -e "${GREEN}  [M]anual手动模式：逐步确认，人工确认（适合新手）${NC}"
  echo -e "${RED}第一次使用，建议先选择【手动模式】，避免自动操作可能产生的数据误删风险（删除操作不可逆，务必谨慎操作），之后再使用【自动模式】会更加安全！\n${NC}"
  echo -e "${RED}输入[A/M]：${NC}" 
read -p "" mode
case "$mode" in
  [aA]*)
    AUTO_MODE=true
    ;;
  [mM]*)
    AUTO_MODE=false
    ;;
  *)
    echo "无效的选择，退出本程序。"
    exit 1
    ;;
esac

confirm_deletion() {
  local file="$1"
  if [[ "$AUTO_MODE" = true ]]; then
    echo "自动模式: 删除 $file"
    return 0
  fi
  if [[ -e "$file" || -L "$file" ]]; then
    read -p "文件 '$file' 存在，是否删除？ [Yy/n] " confirm
    if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
      echo "跳过删除： $file"
      return 1
    fi
  else
    echo "文件 '$file' 不存在，跳过"
    return 1
  fi
  return 0
}

delete_file() {
  local file="$1"
  if confirm_deletion "$file"; then
    sudo rm -rfv "$file"
  fi
}

delete_files_by_pattern() {
  local pattern="$1"
  files=($pattern)
  for file in "${files[@]}"; do
    delete_file "$file"
  done
}
# 用户确认
if [[ "$AUTO_MODE" = false ]]; then
  echo -e "\033[31m警告：此操作将删除系统缓存和日志文件！\033[0m"
  read -p "即将执行系统清理操作，如同意删除所有内容，则继续？[Yy/N] " confirm
  if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
    echo -e "\033[32m操作已取消\033[0m"
    exit 0
  fi
fi
# 用户确认confirm_deletion_and_delete命令
confirm_deletion_and_delete() {
  local command="$1"
  echo "自动模式:准备执行: $command"
  if [[ "$AUTO_MODE" = false ]]; then
    read -p "是否确认执行上述命令？ [Y/n] " confirm
    if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
      echo "已选择取消执行，现跳过执行命令"
      return
    fi
  fi
  eval "$command"
}
sudo echo -e "\n\033[31m开始清理中，请稍等。。。\033[0m"
# ======================
# 1. APT缓存清理
# ======================
echo -e "\n\033[34m[1/8] 清理APT缓存...\033[0m"
log_paths=(
  "/var/cache/apt/archives/*"
  "/var/cache/apt/apt-fast/*"  
  "/var/lib/aptss/lists/*"  
  "/var/cache/kylin-system-updater/*"
 "/var/lib/apt/lists/*" #删除系统底层安装器锁
  "/var/lib/dpkg/lock-frontend"
  "/var/lib/dpkg/lock"
)
shopt -s nullglob
for pattern in "${log_paths[@]}"; do
  delete_files_by_pattern "$pattern"
done
shopt -u nullglob
# ======================
# 2. 系统日志清理
# ======================
echo -e "\n\033[34m[2/8] 清理系统日志...\033[0m"
log_paths=(
    "/var/log/syslog*"
    "/var/log/backup.log"     #删除备份日志
    "/var/log/apt/*.log"
    "/var/log/apt/*.log.xz"	
    "/var/log/dpkg.log"   #删除dpkg安装日志
   "/var/log/kylin-*.log"
    "/var/log/wpslog/*.log"  #删除wpslog安装日志
    "/var/log/audit/*"
    "/var/log/*.log*"
    "/var/log/lightdm/*.log*"
    "/var/log/samba/*.log*"
    "/var/log/dmesg"
    "/var/log/dmesg"               # 内核日志 
    "/var/log/kern.log*"       # 内核环形日志
    "/var/log/auth.log*"       # 认证日志
    "/var/log/cron.log*"       # 定时任务日志    
    "/var/log/kylin-software-properties/*"
    "/tmp/*.png"
    "/tmp/*.log"
    "/var/log/deepin/*.log"       # Deepin系统日志
    "/var/log/uos/*.log"             # UOS系统日志
    "/var/log/plasma-workspace/*.log"   # KDE桌面日志 
    "/var/log/kylin/*.log"                         # 麒麟系统日志
    "/var/log/kylin-installer.log"  # 安装日志 
    "/var/log/upstart/*.log"   # Upstart日志（兼容旧系统）
    "/var/lib/ureadahead/debug.log"           # 系统启动预加载日志        
)
shopt -s nullglob
for pattern in "${log_paths[@]}"; do
  delete_files_by_pattern "$pattern"
done
shopt -u nullglob

echo "即将扫描/var/log/目录及cache下所有.log后缀的日志文件"
confirm_deletion_and_delete "sudo find /var/log/ -name '*.log'  -mtime +7 -print -exec rm -f {} \;"
confirm_deletion_and_delete "sudo find ${HOME} -type d -name '.cache' -exec sh -c 'sudo rm -rfv \"\$1\"/*.log' _ {} \; 2>/dev/null"
echo "操作完成，已删除上述确认过的日志文件"
confirm_deletion_and_delete "sudo find /var/lib/systemd/coredump/ -type f -mtime +1 -exec rm -fv {} \;"
# ======================
# 3. 第三方应用清理
# ======================
echo -e "\n\033[34m[3/8] 清理第三方应用...\033[0m"
app_paths=(
    "/opt/.unisandbox_*.img"
    "/opt/qaxsafe/Log/*"
    "/opt/apps-*/debs/*"
    "/opt/apps/spark-store/files/*.{deb,xz}"
    "/opt/exagear/images/*"   #清理exagear无用的图片文件
    "/opt/gcc-arm-10.3-2021.07-*"
    "/opt/deepin/Cache/*"          # Deepin软件缓存
    "/opt/uos/Cache/*"               # UOS软件缓存
    "/opt/software-center/cache/*"        # 软件中心缓存    
    "/opt/kylin/kylin-installer/logs/*"      # 麒麟安装程序日志
    "/opt/Deepin/SoftwareCenter/cache/*"      # Deepin软件中心缓存
    "/opt/uos/Deepin/AppStore/cache/*"        # UOS应用商店缓存
    "/opt/kylin/kylin-installer/logs/*"      # 麒麟安装日志
    "/opt/deepin/Packages/*/data/*"           # Deepin软件包缓存
)
shopt -s nullglob
for pattern in "${app_paths[@]}"; do
  delete_files_by_pattern "$pattern"
done
shopt -u nullglob
confirm_deletion_and_delete "sudo find /opt/ -type d -name 'log' -exec sh -c 'sudo rm -rfv \"\$1\"/*.log' _ {} \; 2>/dev/null"
confirm_deletion_and_delete "sudo find /opt/ -type d -name 'Log' -exec sh -c 'sudo rm -rfv \"\$1\"/*.log' _ {} \; 2>/dev/null"
confirm_deletion_and_delete "sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs -r apt purge -y"

# ======================
# 4. 用户目录清理
# ======================
echo -e "\n\033[34m[4/8] 清理用户目录...\033[0m"
user_paths=(
    "${HOME}/.xsession-errors*"   #删除缓存文件
    "${HOME}/.config/qaxbrowser/DownloadCache/*"
    "${HOME}/.qaxsafe/*"  #删除奇安信杀病毒软件缓存文件
    "${HOME}/.tmp/suwellreader/*"     #删除数科OFD缓存文件
    "${HOME}/.cache/uksc/wget_down/deb/*"  #删除下载的安装文件
    "${HOME}/.local/share/Deepin/software-center/cache/*"  # Deepin缓存
    "${HOME}/.local/share/Deepin/udis86/cache/*"          # Deepin反汇编缓存
    "${HOME}/.cache/deepin/SoftwareCenter"                 # Deepin软件中心缓存
    "${HOME}/.config/browser360/Default/DirectOpenDownloadCache/*"      # 删除360浏览临时下载打开文件
    "${HOME}/.config/browser360/Updates/*"      # 删除360浏览临时升级文件
    "${HOME}/.cache/deepin/dock"
    "${HOME}/.cache/deepin/panel"
    "${HOME}/.cache/ksmserver"
    "${HOME}/.cache/*/*.log"    
    "${HOME}/.cache/*.log"        
    "${HOME}/.cache/plasma-org.kde.plasma.desktop-appletsrc"  # KDE桌面缓存
    "${HOME}/.ccache/*"        
    "${HOME}/.xwechat/radium/*"    
    "${HOME}/.xwechat/log/*.xlog"     
    "${HOME}/.config/*browser*/Cache/*"   # 通用浏览器缓存
    "${HOME}/.config/*chrome*/Cache/*"   # Chrome系浏览器
    "${HOME}/.mozilla/firefox/*/Cache/*"   # Firefox缓存
)
shopt -s nullglob
for pattern in "${user_paths[@]}"; do
  delete_files_by_pattern "$pattern"
done
shopt -u nullglob
confirm_deletion_and_delete "sudo find '${HOME}/.cache' -name 'core*'  -mtime +7 -print0 | xargs -0 -n 100 sudo rm -rfv"
confirm_deletion_and_delete "sudo find ${HOME}/.config/QQ/versions/ -type f ! -name '*.json'   -mtime +7 -exec rm -rfv {} +"
confirm_deletion_and_delete "sudo find ${HOME}/.config/QQ/versions/ -mindepth 1 -type d -empty -delete"
confirm_deletion_and_delete "sudo find ${HOME} -type d -name '.cache' -exec sh -c 'sudo rm -rfv \"\$1\"/*.png' _ {} \; 2>/dev/null"
confirm_deletion_and_delete "sudo find ${HOME} -type d -name 'browser360' -exec sh -c 'sudo rm -rfv \"\$1\"/*.log' _ {} \; 2>/dev/null"
confirm_deletion_and_delete "sudo find /tmp -maxdepth 1 -name 'wps*' -o -name 'kingsoft*' -exec rm -rfv {} \; 2>/dev/null"
confirm_deletion_and_delete "sudo find $HOME/.WXWorkLocal/WatermarkImg/   -type f -mmin +7200 -exec rm -fv {} \;"
confirm_deletion_and_delete "sudo find $HOME/.WXWorkLocal/screen_shot/   -type f -mmin +7200 -exec rm -fv {} \;"
confirm_deletion_and_delete "sudo find '$HOME/.xwechat/' -type f -name '*.log'  -mtime +7  -exec rm -rfv {} + 2>/dev/null" 
confirm_deletion_and_delete "sudo find '$HOME/.WXWorkLocal/' -type f -name '*.log'  -mtime +7 -exec rm -rfv {} + 2>/dev/null" 

 # 删除Kingsoft Office备份目录中超过7天的文件
confirm_deletion_and_delete "sudo find ${HOME}/.local/share/Kingsoft/office6/data/backup/ -type f -mtime +7 -exec rm -rfv {} \;"
# 清理粤政易历史文件
   echo "开始清理粤政易历史文件..."
# 获取当前年月（格式：YYYY-MM）
WXWorkLocal_month=$(date +"%Y-%m")
  echo "当前月份: ${WXWorkLocal_month}"
# 定义需要清理的目录列表
WXWorkLocal_dirs=("Avator" "Emotion")
# 遍历所有目标目录
for WXWorkLocal_name in "${WXWorkLocal_dirs[@]}"; do
  echo "正在处理目录: ${WXWorkLocal_name}"
    # 使用while循环逐行处理find结果，避免路径合并问题
  while IFS= read -r -d '' WXWorkLocal_dir; do
    echo "扫描目录: ${WXWorkLocal_dir}"
        # 使用临时数组存储待删除目录
    mapfile -t old_dirs < <(find "${WXWorkLocal_dir}" -maxdepth 1 -type d -regextype posix-extended -regex ".*/[0-9]{4}-[0-9]{2}$" | grep -vE "/${WXWorkLocal_month}$" || true)
    for old_dir in "${old_dirs[@]}"; do
      if [[ -d "${old_dir}" ]]; then
        echo "正在删除旧文件夹: ${old_dir}"
       confirm_deletion_and_delete "sudo  rm -rfv '${old_dir}'"
      else
        echo "警告: 目录不存在 ${old_dir}"
      fi
    done
  done < <(find "${HOME}/.WXWorkLocal/data/" -type d -path "*/${WXWorkLocal_name}" -print0 2>/dev/null)
done
# 结束删除粤政易每月保留的文件
# 开始删除QQ每月保留的文件
# 获取当前年月（格式：YYYY-MM）
QQ_month=$(date +"%Y-%m")
# 检查并获取QQ目录
qq_dir=$(find "${HOME}/.config/QQ/" -maxdepth 1 -type d -name "nt_qq_*" | head -n 1)
if [ -z "$qq_dir" ]; then
  echo "警告：QQ目录不存在！路径：$qq_dir"
else
  clean_dir() {
    local dir_type=$1
    local target_dir="$2"
    if [ ! -d "$target_dir" ]; then
      echo "警告：${dir_type}目录不存在！路径：$target_dir"
      return 1
    fi
    if [ ! -w "$target_dir" ]; then
      echo "警告：没有${target_dir}目录的写入权限"
      return 1
    fi
    echo "正在清理${dir_type}目录：$target_dir"
    local files_to_delete=$(find "$target_dir" -type f ! -name "${QQ_month}*" -print 2>/dev/null | wc -l)
    if [ $files_to_delete -gt 0 ]; then
            confirm_deletion_and_delete  "sudo find '$target_dir' -type f ! -name '${QQ_month}*' -delete"
      echo "已清理${files_to_delete}个非本月($QQ_month)文件"
    fi
    local dirs_to_delete=$(find "$target_dir" -mindepth 1 -type d ! -name "${QQ_month}*" -print 2>/dev/null | wc -l)
    if [ $dirs_to_delete -gt 0 ]; then
            confirm_deletion_and_delete  "sudo find '$target_dir' -mindepth 1 -type d ! -name '${QQ_month}*' -exec rm -rfv {} +"
      echo "已清理${dirs_to_delete}个非本月($QQ_month)目录"
    fi
    [ $files_to_delete -eq 0 ] && [ $dirs_to_delete -eq 0 ] && echo "没有需要清理的内容"
  }
       clean_dir "QQ头像"        "${qq_dir}/nt_data/avatar/user/"
       clean_dir "QQ表情"        "${qq_dir}/nt_data/Emoji/emoji-recv/"
       clean_dir "QQ_Pic"      "${qq_dir}/nt_data/Pic/"
       clean_dir "QQ_Video" "${qq_dir}/nt_data/Video/"
# 结束删除QQ每月保留的文件
#开始清理QQ目录的ZIP文件
  QQ_ThumbTemp_dir="$qq_dir/nt_data/Emoji/BaseEmojiSyastems/ThumbTemp"
  QQ_emoji_zip_count=$(find "$QQ_ThumbTemp_dir" -maxdepth 1 -type f -name "*.zip" 2>/dev/null | wc -l)
  if [ $QQ_emoji_zip_count -gt 0 ]; then
       confirm_deletion_and_delete "sudo rm -rfv '$QQ_ThumbTemp_dir'/*.zip"
    echo "已清理ThumbTemp目录中的${QQ_emoji_zip_count}个zip文件"
  else
    echo "没有需要清理的内容：ThumbTemp目录中没有zip文件"
  fi

  QQ_emoji_dir="$HOME/.config/QQ/global/nt_data/Emoji/emoji-resource"
  QQ_zip_count=$(find "$QQ_emoji_dir" -maxdepth 1 -type f -name "*.zip" 2>/dev/null | wc -l)
  if [ $QQ_zip_count -gt 0 ]; then
       confirm_deletion_and_delete "sudo rm -rfv '$QQ_emoji_dir'/*.zip"
    echo "已清理emoji-resource目录中的${QQ_zip_count}个zip文件"
  else
    echo "没有需要清理的内容：emoji-resource目录中没有zip文件"
  fi
fi
#清理QQ目录的ZIP文件结束
# ======================
# 5. 临时文件清理
# ======================
echo -e "\n\033[34m[5/8] 清理临时文件...\033[0m"
      confirm_deletion_and_delete "sudo rm -rfv /tmp/{spark-store,*.{png,log}}"
      confirm_deletion_and_delete "sudo rm -rfv ${HOME}/.local/share/Trash/files/* "    # 手动删除回收站文件
      confirm_deletion_and_delete "sudo find ${HOME}/.local/share -name '*.log' -print -delete"
# ======================
# 6. 日志管理优化
# ======================
echo -e "\n\033[34m[6/8] 优化日志系统...\033[0m"
echo "即将扫描用户目录与opt下所有.log后缀的日志文件"
      confirm_deletion_and_delete "sudo find /opt/ -name '*.log' -exec rm -rfv {} \; 2>/dev/null"
      confirm_deletion_and_delete "sudo find ${HOME}/.log/ -name '*.log' -exec rm -rfv {} \; 2>/dev/null"  
      confirm_deletion_and_delete "sudo rm -rfv ${HOME}/.config/com.xunlei.download/Cache/*"   #删除xunlei缓存文件
      confirm_deletion_and_delete "sudo rm -rfv ${HOME}/.config/sogou*/log/*.log"     #清除搜狗个人版日志
      confirm_deletion_and_delete "sudo rm -rfv ${HOME}/.config/ukui-session/*.log"    #清除ukui-session日志     
# 删除过期文件+空目录（带操作日志）
      confirm_deletion_and_delete "sudo find /var/log -type f -mtime +1 -exec rm -fv {} \; -o -type d -empty -exec echo '删除空目录: {}' \; -delete"
      confirm_deletion_and_delete "sudo find /.log -type f -mtime +1 -exec rm -fv {} \; -o -type d -empty -exec echo '删除空目录: {}' \; -delete"      
if [[ -f "/etc/kylin-release" ]]; then
      confirm_deletion_and_delete "sudo journalctl --vacuum-time=3d"
else
      confirm_deletion_and_delete "sudo journalctl --vacuum-time=7d"
fi
      confirm_deletion_and_delete "sudo journalctl --vacuum-size=100M"
# ======================
# 7. 历史记录清理
# ======================
echo -e "\n\033[34m[7/8] 清理历史记录...\033[0m"
      confirm_deletion_and_delete "sudo rm -rfv ${HOME}/.bash_history"
      confirm_deletion_and_delete "history -c"
      confirm_deletion_and_delete "sudo rm -rfv ${HOME}/.local/share/recently-used.xbel"  # 删除全局最近使用文件列表
      confirm_deletion_and_delete "sudo rm -rfv ${HOME}/.config/gtk-3.0/bookmarks"      # 清除文件管理器书签记录
      confirm_deletion_and_delete "sudo find ${HOME}/.cache -type f -name '*recent*' -delete"  # 删除所有含recent关键词的缓存
      confirm_deletion_and_delete "sudo find ${HOME}/.config -name 'recently-used*' | xargs -I {} rm -rfv {}" # 清理配置文件记录
# ======================
# 8. 系统维护
# ======================
echo -e "\n\033[34m[8/8] 系统维护...\033[0m"
if [[ -f "/etc/kylin-release" ]]; then
     confirm_deletion_and_delete "sudo kylin-update --clean"
else
     confirm_deletion_and_delete "sudo journalctl --vacuum-time=7d"
fi
# sudo apt autoclean -y
# sudo apt clean -y
# sudo apt autoremove -y
sudo apt update    #更新update文件
# ======================
# 完成报告
# ======================
echo -e "\n\033[32m=== 清理完成 ===\033[0m"
echo -e "已安全清理以下内容："
echo -e " ✓ APT缓存和锁文件"
echo -e " ✓ 系统日志文件"
echo -e " ✓ 第三方应用缓存"
echo -e " ✓ 用户临时文件"
echo -e " ✓ 系统临时文件"
echo -e " ✓ 优化日志系统"
echo -e " ✓ 清理历史记录"
# 系统提示功能
notify "系统已焕然一新！" "系统已焕然一新！已完成清理工作，感谢您的使用！" "success"   "$ICON_PATH"
read -p $'\e[34m 按任意键关闭此窗口...\e[0m' -n 1 -r
