| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- #!/bin/bash
- # 项目文件清理脚本 - 删除非必要的临时脚本文件
- set -e
- echo "============================================="
- echo " 项目文件清理脚本 "
- echo "============================================="
- # 颜色定义
- RED='\033[0;31m'
- GREEN='\033[0;32m'
- YELLOW='\033[1;33m'
- NC='\033[0m' # No Color
- echo_info() {
- echo -e "${GREEN}[信息]${NC} $1"
- }
- echo_warn() {
- echo -e "${YELLOW}[警告]${NC} $1"
- }
- echo_error() {
- echo -e "${RED}[错误]${NC} $1"
- }
- echo_success() {
- echo -e "${GREEN}[成功]${NC} $1"
- }
- # 需要保留的重要脚本文件
- IMPORTANT_FILES=(
- "deploy.sh" # 统一部署脚本
- "install_arm_ubuntu.sh" # 安装脚本(根据README_INSTALL.md)
- "cleanup_scripts.sh" # 当前清理脚本自身
- )
- # 额外删除的特定文件
- EXTRA_FILES_TO_DELETE=(
- "deploy_to_remote.sh"
- "install_dependency_and_restart.sh"
- "create_fix_script.py"
- "fix_duplicate_app.py"
- "fix_socketio.py"
- )
- # 函数:检查文件是否为重要文件
- is_important_file() {
- local filename="$1"
- for important_file in "${IMPORTANT_FILES[@]}"; do
- if [[ "$filename" == "$important_file" ]]; then
- return 0 # 是重要文件
- fi
- done
- return 1 # 不是重要文件
- }
- # 要删除的脚本模式列表
- SCRIPT_PATTERNS=(
- "fix_*.sh"
- "test_*.sh"
- "test_*.py"
- "check_*.sh"
- "upload_*.sh"
- "restart_*.sh"
- "simple_*.sh"
- "direct_*.sh"
- "multiline_*.sh"
- "verify_*.sh"
- "force_*.sh"
- "kill_*.sh"
- "correct_*.sh"
- "final_*.sh"
- "create_*.sh"
- "remote_*.py"
- )
- # 统计要删除的文件数量
- declare -i total_files=0
- # 收集所有要删除的文件
- declare -a files_to_delete
- # 添加额外指定的文件
- for file in "${EXTRA_FILES_TO_DELETE[@]}"; do
- if [[ -f "$file" ]]; then
- files_to_delete+=("$file")
- echo_info " 标记删除(额外): $file"
- ((total_files++))
- fi
- done
- for pattern in "${SCRIPT_PATTERNS[@]}"; do
- echo_info "查找匹配模式: $pattern"
-
- # 查找匹配的文件,但排除重要文件
- while IFS= read -r file; do
- # 获取文件名(不含路径)
- filename=$(basename "$file")
-
- # 检查是否为重要文件
- if is_important_file "$filename"; then
- echo_warn " 保留重要文件: $file"
- else
- files_to_delete+=("$file")
- echo_info " 标记删除: $file"
- ((total_files++))
- fi
- done < <(find "." -maxdepth 1 -name "$pattern" 2>/dev/null)
- done
- # 显示统计信息
- echo ""
- echo_info "总共标记了 $total_files 个文件进行删除"
- # 确认是否继续
- if [ $total_files -gt 0 ]; then
- echo ""
- echo_warn "注意: 此操作将永久删除这些文件,无法恢复!"
- echo -n "是否继续删除?(y/N): "
- read -r confirm
-
- if [[ "$confirm" == [Yy]* ]]; then
- echo ""
- echo_info "开始删除文件..."
-
- # 删除所有标记的文件
- for file in "${files_to_delete[@]}"; do
- if rm -f "$file"; then
- echo_info " 删除成功: $file"
- else
- echo_error " 删除失败: $file"
- fi
- done
-
- echo ""
- echo_success "清理完成!已删除 $total_files 个非必要文件"
- else
- echo ""
- echo_info "已取消清理操作"
- fi
- else
- echo ""
- echo_info "没有找到需要删除的文件"
- fi
- # 显示当前目录中的脚本文件
- echo ""
- echo_info "当前目录中剩余的脚本文件:"
- ls -la *.sh 2>/dev/null || echo " 没有找到shell脚本文件"
- # 显示当前目录中的Python文件
- echo ""
- echo_info "当前目录中剩余的Python文件:"
- ls -la *.py 2>/dev/null || echo " 没有找到Python文件"
- echo ""
- echo_success "清理脚本执行完毕!"
|