问题描述:
- merge_backups 函数使用 basename 获取文件名
- 但文件实际在子目录中 (folders/folders.tar.gz, mysql/mysql.sql.gz)
- tar -C ${TEMP_DIR} 切换到临时目录后找不到文件
修复方案:
- 使用 ${path#${TEMP_DIR}/} 获取相对于临时目录的相对路径
- 正确构建文件列表传递给 tar 命令
- 确保 tar 能找到正确的文件路径
示例:
- 原: basename /tmp/xxx/folders/folders.tar.gz → folders.tar.gz (错误)
- 新: /tmp/xxx/folders/folders.tar.gz#/tmp/xxx/ → folders/folders.tar.gz (正确)