Initial commit

This commit is contained in:
wn6
2026-05-31 13:41:47 +07:00
commit c70d57f9ee
3 changed files with 164 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
#!/bin/bash
INPUT_DIR="${1:-.}"
OUTPUT_DIR="${2:-.}"
if [ -z "$1" ]; then
echo "Usage: $0 <input_dir> [output_dir]"
echo "Concatenates all .tar.gz parts and extracts them"
exit 1
fi
PREFIX=""
for f in "${INPUT_DIR}"/**.tar.gz; do
if [ -f "$f" ]; then
BASE=$(basename "$f")
# Убираем числовой суффикс для определения префикса
PREFIX=$(echo "$BASE" | sed -E 's/\.[0-9]+$//')
if [ -n "$PREFIX" ]; then
break
fi
fi
done
COMBINED="/tmp/${PREFIX}_combined.tar.gz"
echo "Combining parts into ${COMBINED}..."
# Собираем в правильном порядке: сначала базовый файл (без суффикса), затем части по порядку
cat "${INPUT_DIR}/${PREFIX}" > "$COMBINED" 2>/dev/null
for f in $(ls -v "${INPUT_DIR}/${PREFIX}".* 2>/dev/null); do
BASE=$(basename "$f")
if [[ "$BASE" =~ \.[0-9]+$ ]]; then
echo "Appending ${BASE}..."
cat "$f" >> "$COMBINED"
fi
done
echo "Extracting ${COMBINED} to ${OUTPUT_DIR}..."
tar -xzf "$COMBINED" -C "$OUTPUT_DIR"
if [ $? -eq 0 ]; then
echo "Extraction complete."
rm -f "$COMBINED"
else
echo "Extraction failed. Combined file kept at ${COMBINED}"
exit 1
fi