找回密码
 registerss
搜索
查看: 5|回复: 0

[文档笔记] 日常开发复用固定目录、进行增量编译 命令 备忘录

[复制链接]
Waylee 发表于 2026-9-20 15:00 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?registerss

×

***付费内容***

服务端替换命令:

#!/usr/bin/env bash
set -euo pipefail

DEST_DIR="/home/tlbb/Server"

FILES=(
    "/opt/tlbb-build/v0-85-9602/build/billing-release/bin/Billing"
    "/opt/tlbb-build/v0-85-9602/build/sharememory-release/bin/ShareMemory"
    "/opt/tlbb-build/v0-85-9602/build/login-release/bin/Login"
    "/opt/tlbb-build/v0-85-9602/build/world-release/bin/World"
    "/opt/tlbb-build/v0-85-9602/build/game-release/bin/Server"
    "/opt/tlbb-build/v0-85-9602/build/game-release/bin/libFoxScriptEngine.so"
    "/opt/tlbb-build/v0-85-9602/build/game-release/bin/libLuaLib.so"
)

mkdir -p "$DEST_DIR"

# 先检查所有编译产物,防止替换到一半才发现文件缺失。
for src in "${FILES[@]}"; do
    if [[ ! -f "$src" ]]; then
        echo "错误:找不到编译产物:$src"
        exit 1
    fi
done

updated=0
skipped=0

for src in "${FILES[@]}"; do
    name="$(basename "$src")"
    dst="$DEST_DIR/$name"

    if [[ -f "$dst" ]] && cmp -s -- "$src" "$dst"; then
        echo "[跳过] $name 内容没有变化"
        ((skipped += 1))
        continue
    fi

    # 先写入同目录临时文件,再原子替换正式文件。
    tmp="$(mktemp "$DEST_DIR/.${name}.new.XXXXXX")"

    if ! install -m 0755 -- "$src" "$tmp"; then
        rm -f -- "$tmp"
        echo "错误:复制 $name 失败"
        exit 1
    fi

    mv -f -- "$tmp" "$dst"
    echo "[更新] $name"
    ((updated += 1))
done

echo
echo "替换完成:更新 $updated 个,跳过 $skipped 个。"
付费看帖
剩余 7% 内容需要支付 1.00 金币 后可完整阅读
支持付费阅读,激励作者创作更好的作品。
您需要登录后才可以回帖 登录 | registerss

本版积分规则

QQ|手机版|雪舞知识库 ( 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 )

GMT+8, 2026-9-21 16:04 , Processed in 0.063965 second(s), 25 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表