Indeed, this would work (althouth I think you put one too many '|' in this command), but then all your files are actually merged into one! This might be what you want if all files are text files, but I seriously doubt it.
The first thing to understand is a difference in philosophy:
- In Windows, tools often strive to be as complete as possible, to do it all from start to end, and if possible do it well.
- In Linux, tools usually strive to do as little as possible, but do it extremely well, and it is usually the shell's task to combine those small tools to obtain the final result, or sometimes one uses front-ends or wrapper tools.
ZIP is a typical Windows-philosophy tool: you give it files, and it outputs a single compressed file with all inside, all this using a rather nice, but unique, GUI.
In Linux, you have choice to group files, although the most common tool is "tar"; you have choice for compressing this file, and "gzip" and "bzip2" are the most common ones (for your convenience, "tar" is able to use them by itself); lastly, you have choice between the text-mode or numerous more or less complete GUI for all tastes.
The typical text-mode command for creating the equivalent of a ZIP file is:
tar -cjf archive.tar.bz2 file1 file2 ... fileN
but files to add to the archive can also be read from the result of a command or from a file that contains the names.