অন্যান্য উত্তর এটি আগে থেকেই ব্যাখ্যা, কিন্তু যদি আপনি কোনো বিষয়ে সন্দেহ থাকে, আপনি দেখতে পারেন কি dd
কিছু করে strace
।
$ strace dd if=/dev/urandom bs=4096 seek=7 count=2 of=file_with_holes
# output is shortened considerably
open("/dev/urandom", O_RDONLY) = 0
open("file_with_holes", O_RDWR|O_CREAT, 0666) = 1
ftruncate(1, 28672) = 0
lseek(1, 28672, SEEK_CUR) = 28672
read(0, "\244\212\222v\25\342\346\226\237\211\23\252\303\360\201\346@\351\6c.HF$Umt\362;E\233\261"..., 4096) = 4096
write(1, "\244\212\222v\25\342\346\226\237\211\23\252\303\360\201\346@\351\6c.HF$Umt\362;E\233\261"..., 4096) = 4096
read(0, "~\212q\224\256\241\277\344V\204\204h\312\25pw9\34\270WM\267\274~\236\313|{\v\6i\22"..., 4096) = 4096
write(1, "~\212q\224\256\241\277\344V\204\204h\312\25pw9\34\270WM\267\274~\236\313|{\v\6i\22"..., 4096) = 4096
close(0) = 0
close(1) = 0
write(2, "2+0 records in\n2+0 records out\n", 312+0 records in
2+0 records out
) = 31
write(2, "8192 bytes (8.2 kB) copied", 268192 bytes (8.2 kB) copied) = 26
write(2, ", 0.00104527 s, 7.8 MB/s\n", 25, 0.00104527 s, 7.8 MB/s
) = 25
+++ exited with 0 +++
এটি /dev/urandom
( if=/dev/urandom
) পড়ার জন্য খোলে , file_with_holes
তৈরি / লেখার জন্য খোলে ( of=file_with_holes
)।
তারপরে এটি = বাইটে ( ) কেটে file_with_holes
যায় । ছাঁটাইয়ের অর্থ এই অবস্থানটি হারিয়ে যাওয়ার পরে ফাইলের সামগ্রীগুলি। ( এই পদক্ষেপটি এড়াতে যুক্ত করুন )। তারপরে এটি বাইটস সন্ধান করে।4096*7
28672
bs=4096 seek=7
conv=notrunc
28672
তারপরে এটি 4096
বাইটগুলি ( bs=4096
হিসাবে ব্যবহৃত ibs
) থেকে পড়ে /dev/urandom
, 4096
বাইটগুলি লিখে দেয় ( bs=4096
হিসাবে ব্যবহৃত obs
) file_with_holes
, তার পরে অন্য পড়তে এবং লিখুন ( count=2
)।
তারপরে এটি = বাইটগুলি অনুলিপি করে /dev/urandom
, বন্ধ করে file_with_holes
এবং মুদ্রণ করে । অবশেষে এটি ত্রুটি ছাড়াই প্রস্থান করে (0)।2*4096
8192