7-zip, bir dosyanın parçasını çok parçalı bir rar'den ayıklar ve daha sonra bunları dd ile birleştirebilirsiniz. Örneğin, ilk ve son rar parçalarına sahipseniz:
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))
Aramanız gereken ofset asal değilse, birden büyük bir blok boyutu kullanın. ddyalnızca seekçıkış bloğu boyutunun katlarına kadar olabilir . ddgerçekten bu blok boyutu ile arama yapar readve writesistem çağrıları, bu yüzden bs=1gerçekten berbat.
Büyük bir ibs(giriş bloğu boyutu) (çıkış bloğu boyutu) seekbirimlerinde olduğu için CPU süresinin yarısını koruyacaktır obs. Ya da belki de keyfi bir bayt pozisyonu arayabilen ve daha sonra normal boyutlu I / O'lar yapabilen başka bir araç var. Veya bunu senaryo yazıyorsanız bs=1, 32k'ye kadar hizaya sahip olabilirsiniz, o zaman belkitail -c +$misalignment lastpart/file | dd ... of=p1/file conv=notrunc bs=32k seek=$(( (full_size - lastpart_size + misalignment) / (32 * 1024) ))