7-জিপ একটি বহু অংশ রর থেকে একটি ফাইলের অংশটি বের করবে এবং তারপরে আপনি এগুলি আবার ডিডি সহ একসাথে সেলাই করতে পারবেন। উদাহরণস্বরূপ, যদি আপনার প্রথম এবং শেষের অংশ থাকে:
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))
যদি আপনার অফসেটটি প্রাইম নয় তবে এটির চেয়ে বড় ব্লকের আকার ব্যবহার করুন। dd
কেবলমাত্র seek
আউটপুট ব্লক আকারের গুণকগুলি করতে পারে। ব্লক আকারের সাথে dd
সত্যিই মেকিং read
এবং write
সিস্টেম কল করে, তাই bs=1
সত্যই সফল হয়।
একটি বড় ibs
(ইনপুট ব্লক আকার) সিপিইউর অর্ধেক সময় সাশ্রয় করতে পারে, যেহেতু (আউটপুট ব্লক আকার) এর seek
ইউনিটগুলিতে থাকে obs
। অথবা হতে পারে এমন অন্য কোনও সরঞ্জাম রয়েছে যা একটি স্বেচ্ছাচারী বাইট অবস্থানের সন্ধান করতে পারে এবং তারপরে সাধারণ আকারের আই / ওএস করতে পারে। অথবা আপনি যদি এটি স্ক্রিপ্ট করছেন, আপনি bs=1
32 কে-পর্যন্ত প্রান্তিককরণের সাথে ডিডি করতে পারেন , তবে সম্ভবতtail -c +$misalignment lastpart/file | dd ... of=p1/file conv=notrunc bs=32k seek=$(( (full_size - lastpart_size + misalignment) / (32 * 1024) ))