But if I'm just giving it one file (that contains multiple files), I'll only get one file back?
That's what I said.
I don't really get the streams thing
Stream = channel for program input or output.
When you open cmd.exe and use the "dir" command, it lists the content of the current directory by writing text characters to StdOut. By default that's the console window. When you use "dir >tmp.txt", the output is written to the file "tmp.txt". (">>" appends to the file instead of overwriting it.) When you use "dir |more", the text is redirected to the program "more", which reads text from its StdIn, writes it to its StdOut and pauses after each page. So you can build entire pipelines