#!/bin/bash if [ "$#" != 1 ]; then echo "usage: $0 firstrarfile" exit 1 fi PAR2=/usr/bin/par2 RAR=/usr/bin/rar SPLIT=/usr/bin/split FIRSTRAR="$1" if [ "$FIRSTRAR" != `basename $FIRSTRAR .part001.rar` ]; then BASENAME=`basename "$FIRSTRAR" .part001.rar` NUMRARS=`ls ${BASENAME}.part*.rar | wc -l | awk '{print $1;}'` PRINTF="\"mv ${BASENAME}.%02d ${BASENAME}.part%03d.rar\n\" \$i \$((\$i+1))" elif [ "$FIRSTRAR" != `basename $FIRSTRAR .part01.rar` ]; then BASENAME=`basename "$FIRSTRAR" .part01.rar` NUMRARS=`ls ${BASENAME}.part*.rar | wc -l | awk '{print $1;}'` PRINTF="\"mv ${BASENAME}.%02d ${BASENAME}.part%02d.rar\n\" \$i \$((\$i+1))" else BASENAME=`basename "$FIRSTRAR" .rar` NUMRARS=`ls ${BASENAME}.r?? | wc -l | awk '{print $1;}'` PRINTF="\"mv ${BASENAME}.%02d ${BASENAME}.r%02d\n\" \$i \$((\$i-1))" fi MAXBLOCKS=32565 BLOCKS=$(($NUMRARS*2)) RARSIZE=`du -b ${FIRSTRAR} | awk '{print $1;}'` FILELIST=`"$RAR" lb "$FIRSTRAR"` "$RAR" x "$FIRSTRAR" rm -f *par2 *PAR2 "$PAR2" c -b${MAXBLOCKS} -c${BLOCKS} -n1 -t+ "${BASENAME}.par2" *rar *r?? cat >> rerar.sh << EOF #!/bin/bash $SPLIT -b$RARSIZE -d ${FILELIST} ${BASENAME}. mv ${BASENAME}.00 ${FIRSTRAR} for i in \`seq 1 $(($NUMRARS-1))\`; do \`printf $PRINTF\`; done "$PAR2" r ${BASENAME}.par2 rm ${BASENAME}.*.1 EOF chmod +x rerar.sh