feat(scripts): 添加 diff_pack.sh 脚本
新增 diff_pack.sh 脚本,用于比较两个目录并打包差异文件。脚本会检查输入参数、验证目录存在性,并使用 rsync 找出差异文件。如果没有差异,则不进行打包并提示用户。如果存在差异,将差异文件打包为 tar.gz 文件并输出相关信息。
这个提交包含在:
父节点
c324f05ccd
当前提交
8f0c11c805
35
scripts/diff_pack.sh
普通文件
35
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"
|
||||||
正在加载...
在新工单中引用
屏蔽一个用户