মনে রাখবেন যে ddআপনি একটি কাঁচা ইন্টারফেস read(), write()এবং lseek()সিস্টেম কল। আপনি কেবল এটি নিয়মিত ফাইল, ব্লক ডিভাইস এবং কিছু চরিত্র ডিভাইস (যেমন /dev/urandom) বন্ধ করে বিশদরূপে ব্যবহার করতে পারেন , এটি এমন ফাইল যা ফাইলের শেষ না হওয়া অবধি read(buf, size)ফেরত দেওয়ার গ্যারান্টিযুক্ত size।
পাইপ, সকেট এবং সর্বাধিক অক্ষরযুক্ত ডিভাইসের জন্য (যেমন টিটিস), আপনি যদি read()আকার 1 টি না করেন বা GNU ddএক্সটেনশন ব্যবহার না করেন তবে আপনার আর কোনও গ্যারান্টি নেই iflag=fullblock।
সুতরাং হয়:
{
gdd < file1 bs=1M iflag=fullblock count=99 skip=1
gdd < file2 bs=1M iflag=fullblock count=10
} > final_output
বা:
M=1048576
{
dd < file1 bs=1 count="$((99*M))" skip="$M"
dd < file2 bs=1 count="$((10*M))"
} > final_output
অথবা সিক অপারেটরের জন্য অন্তর্নির্মিত সমর্থন সহ শাঁস সহ ksh93:
M=1048576
{
command /opt/ast/bin/head -c "$((99*M))" < file1 <#((M))
command /opt/ast/bin/head -c "$((10*M))" < file2
}
বা zsh( এখানে headআপনার -cবিকল্পগুলি সমর্থন করে তা ধরে নিচ্ছেন ):
zmodload zsh/system &&
{
sysseek 1048576 && head -c 99M &&
head -c 10M < file2
} < file1 > final_output
oflag=append conv=notrunc), সুতরাং যে বিলম্ব বরাদ্দ (এক্সএফএস এর মতো) করে এমন ফাইল সিস্টেমগুলি আরও কিছু করার পরেও ফাইলটি লিখিত হচ্ছে কিনা তা নির্ধারণ করার সম্ভাবনা রয়েছে।