Although I am learning shell scripts, there is a sample line that I can not understand in a tutorial on the page below.

Could anybody tell me the first line's meaning in the code below?
These lines are modified from the original code to shorten.

format="%8s%10s%10s   %-s\n"
printf "$format" "Dirs" "Files" "Blocks" "Directory"

total_dirs=$(find $HOME -type d | wc -l)
total_files=$(find $HOME -type f | wc -l)
total_blocks=$(du -s $HOME)

printf "$format" $total_dirs $total_files $total_blocks

My questions are about the second half of the fist line.

1) About the usage of "space":

If there are 3 spaces between $3 and $4 in the "format", the outputted line also has 3 space between $3 and $4?

2) About "%-s\n" part:

What is the meaning of "-(hyphen)" in this sample code?
I got same output result, even if I removed it.


Thank you for reading and I am waiting for your help!