7-zipはマルチパートrarからファイルの一部を抽出し、ddでそれらをステッチすることができます。たとえば、最初と最後のrar-partsがある場合:
7z x p1.rar
mv dir p1  # rename out of the way
7z x plast.rar
unrar l p1.rar
   # note the file size of the entire file
ls -l dir/file  # note the size of the last part
dd if=dir/file of=p1/file  conv=notrunc  bs=1 seek=$((full_size - lastpart_size))
求めるオフセットが素数でない場合は、1より大きいブロックサイズを使用します。  出力ブロックサイズの倍数にddしかできませんseek。  dd本当に負いませんreadし、writeそのブロックサイズでシステムコールが、そうbs=1本当に吸います。
大きいibs(入力ブロックサイズ)はseek、obs(出力ブロックサイズ)の単位であるため、CPU時間を半分節約します。あるいは、任意のバイト位置にシークして通常サイズのI / Oを実行できる他のツールがあるかもしれません。または、これをスクリプト化している場合は、bs=1最大32k境界でddできます。tail -c +$misalignment lastpart/file | dd ... of=p1/file conv=notrunc bs=32k seek=$(( (full_size - lastpart_size + misalignment) / (32 * 1024) ))