| Server IP : 185.125.27.153 / Your IP : 216.73.216.193 Web Server : Apache System : Linux d6e05399ed1f11695f7c56648ed78c66 6.1.0-0.deb11.50-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.176-1~deb11u1 (2026-07-02) x86_64 User : uid174255 ( 174255) PHP Version : 8.3.31 Disable Function : exec,passthru,pcntl_exec,popen,proc_open,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/sbin/ |
Upload File : |
#! /bin/sh
# Usage: tarcat volume1 volume2 ...
# concatenates a GNU tar multi-volume archive into a single tar archive.
# Author: Bruno Haible <bruno@clisp.org>, Sergey Poznyakoff <gray@gnu.org.ua>
# dump_type FILE [N]
# Print type character from block N (default 0) of tar archive FILE
dump_type() {
dd if="$1" skip=${2:-0} bs=512 count=1 2>/dev/null |
tr '\0' ' ' |
cut -c157
}
case `dump_type "$1"` in
[gx]) PAX=1;;
esac
cat "$1"
shift
for f
do
SKIP=0
T=`dump_type "$f"`
if [ -n "$PAX" ]; then
if [ "$T" = "g" ]; then
# Global extended header.... 2 blocks
# Extended header........... 2 blocks
# Ustar header.............. 1 block
# FIXME: This calculation is will fail for very long file names.
SKIP=5
fi
else
if [ "$T" = "V" ]; then
T=`dump_type "$f" 1`
fi
if [ "$T" = "M" ]; then
SKIP=$(($SKIP + 1))
fi
fi
dd skip=$SKIP if="$f"
done