Эх сурвалжийг харах

feat(scripts): 添加 diff_pack.sh 脚本

新增 diff_pack.sh 脚本,用于比较两个目录并打包差异文件。脚本会检查输入参数、验证目录存在性,并使用 rsync 找出差异文件。如果没有差异,则不进行打包并提示用户。如果存在差异,将差异文件打包为 tar.gz 文件并输出相关信息。
xuqm 4 өдөр өмнө
parent
commit
8f0c11c805
1 өөрчлөгдсөн 35 нэмэгдсэн , 0 устгасан
  1. 35 0
      scripts/diff_pack.sh

+ 35 - 0
scripts/diff_pack.sh

@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# 检查参数
+if [ "$#" -ne 3 ]; then
+    echo "用法: $0 <dir1> <dir2> <output.tar.gz>"
+    exit 1
+fi
+
+dir1="$1"
+dir2="$2"
+output="$3"
+
+# 确保目录存在
+if [ ! -d "$dir1" ] || [ ! -d "$dir2" ]; then
+    echo "错误:目录不存在"
+    exit 1
+fi
+
+# 创建临时目录
+tmp_dir=$(mktemp -d)
+trap "rm -rf $tmp_dir" EXIT
+
+# 使用 rsync 找出 dir2 中新增或修改的文件
+rsync -av --compare-dest="$dir1" "$dir2"/ "$tmp_dir"/ > /dev/null
+
+# 如果没有差异,提示并退出
+if [ -z "$(ls -A "$tmp_dir")" ]; then
+    echo "两个目录内容一致,无需打包。"
+    exit 0
+fi
+
+# 打包压缩
+tar -czf "$output" -C "$tmp_dir" .
+
+echo "✅ 差异文件已打包为:$output"