Silence in itself is a simple argument to the team. Its meaning depends on the team. Its two most common meanings are "standard input" or (less commonly) "standard output". The value of the “previous directory” is unique to the built-in cd shell shell (and this only means that in some shells, and not in all shells).
cat file1 - file2 | troff ...
This means that in this sequence read file1 , standard input and file2 and send the result to troff .
An extreme use case - to mean "standard input" or "standard output" comes from (GNU) tar :
generate_file_list ... | tar -cf - -T - | ( cd /some/where/else; tar -xf - )
Parameters -cf - in the first tar means "create archive", and "output file means standard output"; option -T - means "read the list of files and / or directories from standard input".
The -xf - options -xf - in the second tar means "extract archive" and "input file - standard input". In fact, GNU tar has the -C /some/where/else option, which means it runs cd itself, so the whole command could be:
generate_file_list ... | tar -cf - -T - | tar -xf - -C /some/where/else
The net effect of this is to copy the files called by the generate_file_list command from the "current directory" to /some/where/else , preserving the directory structure. (The "current directory" should be taken with a small pinch of salt, any absolute file names receive special GNU tar processing - it removes the leading slash and mdash, and relative names are taken relative to the current directory.)
source share