Ok, you said the man pages were not detailed, so I will explain what they mean with an easy to understand metaphor about a moving guy (he goes by the name of dd
):
bs=BYTES
read and write up to BYTES bytes at a time
dd
picks up something (boxes, vases, beds, rice, etc.), move where it needs to be and drops it off. Until he doesn't drop the load of objects of the box, he doesn't pick anything else, it means: other box with another load of objects.
Now, when you need to tell him exactly how many objects to load into the box per travel, this is what bs
do. You set the amount of data he will read and write. This is almost mandatory in all useful and common commands.
count=N
copy only N input blocks
This determinate the total amount of boxes he will move. Boxes in this context are the blocks on the disk. You tell him to move 5 boxes, he only moves 5 boxes even if there are more than 5 boxes (if there are less than 5 boxes, he will take a vase he found besides the boxes to add it up). If you tell dd
to count
only 5, and write it somewhere, he would copy the first 5 blocks he sees and writes them where you want.
seek=N skip N obs-sized blocks at start of output
The guy normally finds the first available place to drop the load, this is normally at the start (of the disk), and continues filling up until the end. Well, with this you tell dd
to start further up, say instead of the hall, start in one of the rooms further inside. It just "skip" the starting blocks.
Now, depending on what you are doing, you will need different combinations based on source and destination, along with the format they will be read and written. I recommend you to search for them separately.